Java 在没有图像的情况下使用PDFBox将PDF转换为灰度?
我正在使用ApachePDFBox 我想将一个RGB PDF文件转换为另一个灰度文件,而不使用图像方法,因为它会产生巨大的文件大小-- 这就是我的步骤:Java 在没有图像的情况下使用PDFBox将PDF转换为灰度?,java,pdf,pdf-generation,pdfbox,Java,Pdf,Pdf Generation,Pdfbox,我正在使用ApachePDFBox 我想将一个RGB PDF文件转换为另一个灰度文件,而不使用图像方法,因为它会产生巨大的文件大小-- 这就是我的步骤: 从Adobe InDesign导出(A4)First.pdf,包含图像、文本和矢量对象 我读了第一个.pdf文件。完成了 使用LayerTubility,从First.pdf复制页面,旋转页面并将其放入新的pdf文件(A4)Second.pdf。完成了 首选此方法,因为我需要向量对象来减小大小 然后,我想将其保存为灰度PDF文件(Secon
- 首选此方法,因为我需要向量对象来减小大小
pddocumentfirst=PDDocument.load(“First.pdf”);
//它总是空的
pddocumentdocumentsecond=PDDocument.load(“Second.pdf”);
对于(int page=0;page
好的,我这周刚开始使用ApacheBox,我遵循了一些
例如,但大多数都是老年人,没有工作,直到现在我做了我想做的事
需要,只需要灰度:)
如果java中有其他使用开源库的解决方案
或者免费的工具。(我用Ghost脚本和Python找到了)
我读过这个示例,但我不理解它,并且有一个函数不推荐使用!:
这是关于PDF规格和更改颜色空间的…据我所知,您提到您会对基于Ghostscript的解决方案感兴趣。 如果可以从命令行调用GS,则可以使用此命令行执行颜色到灰度的转换
gs -sDEVICE=pdfwrite -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray -dOverrideICC -o out.pdf -f input.pdf
我的答案取自您提到的,据我所知,您可能对基于Ghostscript的解决方案感兴趣。 如果可以从命令行调用GS,则可以使用此命令行执行颜色到灰度的转换
gs -sDEVICE=pdfwrite -sProcessColorModel=DeviceGray -sColorConversionStrategy=Gray -dOverrideICC -o out.pdf -f input.pdf
我的答案取自该示例仅适用于简单文档。但是一个完整的解决方案是非常重要的。PDFBox可以进行灰度转换吗?不是“开箱即用”。据我所知,没有现成的PDFBox转换例程,您参考的示例只涉及非常简单的情况。另一方面,pdfbox为任意pdf操作提供了一个框架;因此,您可以基于pdfbox实现自己的转换。所以“PDFBox可以进行灰度转换吗?”-可以,但可能不是现成的。补充:如果您没有共享讨论中的pdf(或pdf的代表性示例),我无法判断您找到的示例是否已经足够。该示例仅适用于简单文档。但是一个完整的解决方案是非常重要的。PDFBox可以进行灰度转换吗?不是“开箱即用”。据我所知,没有现成的PDFBox转换例程,您参考的示例只涉及非常简单的情况。另一方面,pdfbox为任意pdf操作提供了一个框架;因此,您可以基于pdfbox实现自己的转换。所以“PDFBox可以进行灰度转换吗?”-可以,但可能不是现成的。如果你没有分享讨论中的pdf(或pdf的代表性示例),我无法判断你找到的示例是否已经足够。