我正在為Bitbucket服務器編寫一個插件,其中我必須處理將PDF渲染為圖像。我使用我有一個將調用來執行處理的方法,并且我已經修改了PDF渲染器,類似于Apache示例所建議的。pdfToPngimport org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.apache.pdfbox.pdmodel.PDDocument;import org.apache.pdfbox.pdmodel.graphics.color.PDColor;import org.apache.pdfbox.rendering.PDFRenderer;import org.apache.pdfbox.rendering.PageDrawer;import org.apache.pdfbox.rendering.PageDrawerParameters;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;import java.io.IOException;public class PDFProcessor { private static Logger logger = LoggerFactory.getLogger(PDFProcessor.class); private static int _colorMode; /** * Convert a page of a PDF document into a colored PNG * @param color color to use, 0 - black, 1- red * @param fileName output file * @param pdfFile PDF to process * @throws IOException */ public static void pdfToPng(int color, String fileName, File pdfFile) throws IOException{ _colorMode = color; try (PDDocument pdfDoc = PDDocument.load(pdfFile)){ logger.info("Begin PDF to PNG render for " + fileName); PDFRenderer renderer = new CustomPdfRenderer(pdfDoc); BufferedImage image = renderer.renderImageWithDPI(0,600); logger.info("Making PNG transparent..."); BufferedImage transparentImage = ImageProcessor.makeTransparent(image,new Color(image.getRGB(0,0))); ImageIO.write(transparentImage, "PNG",new File(fileName+".png")); logger.info("Image processed successfully, writing to " + fileName + ".png"); } }該項目是使用Maven構建的,因為這是BitBucket用于插件開發的時候。但是,當實際調用該方法時,我得到一個異常,指出:ClassNotFound如您所見,我已經導入了該類。My 還包含正確的依賴項定義:PDFRendererpom.xml為什么 Java 找不到該類?以這種方式聲明的其他依賴項永遠不會有此問題。PDFRenderer
1 回答

汪汪一只貓
TA貢獻1898條經驗 獲得超8個贊
您正在使用 與 的依賴項。您希望誰在需要時提供此依賴項?像 Tomcat 這樣的應用程序容器?pdfbox
<scope>provided</scope>
我建議你刪除這一行,這樣依賴關系將是隱式范圍的,這應該為你解決問題。scope
compile
另請參閱 Maven 范圍文檔,其中說:
compile
– 這是默認范圍,如果未指定任何作用域,則使用。編譯依賴項在項目的所有類路徑中都可用。provided
– 這很像編譯,但表示您希望 JDK 或容器在運行時提供依賴項。
添加回答
舉報
0/150
提交
取消