标签: ghost4j

将PDF文件转换为图像

我想将PDF文档转换为图像.我在使用Ghost4j.

问题: Ghost4J需要gsdll32.dll文件在运行时,我也并不想使用的DLL文件.

问题1:有什么办法,在ghost4j中转换图像而不用dll?

问题2:我在PDFBox API中找到了解决方案.org.apache.pdfbox.pdmodel.PDPagep have methodconvertToImage()`将PDF页面转换为图像格式.

PDDocument doc = PDDocument.load(new File("/document.pdf"));
List<PDPage>pages =  doc.getDocumentCatalog().getAllPages();
PDPage page = pages.get(0);
BufferedImage image =page.convertToImage();
File outputfile = new File("/image.png");
ImageIO.write(image, "png", outputfile);
doc.close();
Run Code Online (Sandbox Code Playgroud)

我在PDF文档上只有文字.当我运行此代码时,我有这个例外:

Aug 12, 2013 6:00:24 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: BDC
Exception in thread "main" java.lang.ExceptionInInitializerError
    at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.getawtFont(PDTrueTypeFont.java:481)
    at org.apache.pdfbox.pdmodel.font.PDSimpleFont.drawString(PDSimpleFont.java:109)
    at org.apache.pdfbox.pdfviewer.PageDrawer.processTextPosition(PageDrawer.java:235)
    at org.apache.pdfbox.util.PDFStreamEngine.processEncodedText(PDFStreamEngine.java:496)
    at org.apache.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:62)
    at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:554)
    at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:268)
    at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)
    at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)
    at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:125)
    at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:781)
    at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:712)
    at …
Run Code Online (Sandbox Code Playgroud)

java pdf pdf-generation pdfbox ghost4j

18
推荐指数
2
解决办法
5万
查看次数

如何在SimpleRenderer上设置抗锯齿选项

我正在使用Ghost4J SimpleRenderer将我的PDF转换为Image.默认情况下,输出png图像不是抗锯齿.

我怎么设置它.

我知道,使用Core API我们可以做到.但是,在高级API中是否有任何方法可以设置它?

java image-processing ghostscript ghost4j

7
推荐指数
1
解决办法
517
查看次数

从 Itext PDF 字节数组转换为多页 TIFF 文件

我有一个 pdf 文件(从byte[]iText 生成的文件中获得),我需要发送到签名硬件。

由于与java打印机驱动程序不兼容,我无法直接发送PDF,因此我需要先将其转换为图像。我已成功将每个 PDF 页面转换为 jpg 文件,但客户不喜欢解决方案,因为签名不在所有文档中,仅在单个页面中。

由于我还没有找到任何免费的库,我决定分四个步骤进行:

STEP1:用itext生成PDF并保存它。

FileOutputStream fos = new FileOutputStream("tempFile.pdf");
fos.write(myByteArray);
fos.close();
fos.flush();
Run Code Online (Sandbox Code Playgroud)

第 2 步:从 PDF 多页转换为List<java.awt.Image>

List<Image> images = null;

Ghostscript.getInstance(); // create gs instance

PDFDocument lDocument = new PDFDocument();
lDocument.load(new File("tempFile.pdf"));

SimpleRenderer renderer = new SimpleRenderer();

renderer.setResolution(300);

try 
{
    images = renderer.render(lDocument);
} 
catch (RendererException | DocumentException e) 
{
    e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

第 3 步:现在我迭代List<java.awt.Image>以转换为单独的 TIFF。

    int filename = 1;

    TIFFEncodeParam params = new …
Run Code Online (Sandbox Code Playgroud)

java pdf itext jai ghost4j

4
推荐指数
1
解决办法
9198
查看次数

Windows 64位上的Tess4j:多线程上的异常

我在Windows 64位上使用tesseract 3和Java 8到OCR扫描的PDF.我已经按照Tess4j页面上的说明使用了64位版本的所需DLL,并安装了64位Ghostscript.

当我使用正常的@Test(无参数)运行我的单元测试时,代码运行正常,所以我想我已经正确安装了所有内容.

当我用2个并行线程运行它时(见下文),我得到一个例外.

我在这里已经阅读了相关的主题,但建议使用我正在使用的Tesseract1(我已经尝试了两个).

有任何想法吗?

这是代码:

//  @Test // works
@Test(invocationCount = 2, threadPoolSize = 2)
public void testOcr() throws OcrException, TesseractException {
    File scannedPdf = new File(this.getClass().getClassLoader().getResource("scanned.pdf").getFile());
//  Tesseract instance = Tesseract.getInstance();  // JNA Interface Mapping
    Tesseract1 instance = new Tesseract1(); // JNA Direct Mapping
    String str = instance.doOCR(scannedPdf);
    System.out.println("OCR Result: " + str);
}
Run Code Online (Sandbox Code Playgroud)

这是例外:

log4j:WARN No appenders could be found for logger (org.ghost4j.Ghostscript).
log4j:WARN Please initialize …
Run Code Online (Sandbox Code Playgroud)

java multithreading tesseract ghost4j tess4j

3
推荐指数
1
解决办法
3710
查看次数

无法加载库“gs”:libgs.so:无法打开共享对象文件:没有这样的文件或目录

我已经在我的 64 位 linux 机器上安装了 64 位的 ghostscript。我正在使用 ghost4j-0.5.0.jar 将 pdf 文件转换为 tiff 文件。我写了一个java程序,它将pdf文件转换为tiff文件。这在 Windows 上运行得非常好,但是当我想到将它移动到 linux 机器时,我收到以下错误。

“线程“main”中的异常java.lang.UnsatisfiedLinkError:无法加载库“gs”:libgs.so:无法打开共享对象文件:没有这样的文件或目录”

我检查了 lib 文件夹,但在 lib 文件夹中找不到 libgs.so 文件。我不确定从哪里获取该文件。

任何人都可以帮我解决这个问题吗?

java imagemagick ghostscript ghost4j

2
推荐指数
1
解决办法
7421
查看次数