Java 如何缩小pdf的内容?
我有一个pdf,我需要缩小比例。该pdf是在A4肖像模式,我需要的是缩小pdf的内容到5%,并把这个到一个新的pdf大小也在A4和肖像模式。这不是一个将pdf转换为图像、缩放它们并将其放回pdf的选项。我正在寻找一种用java解决这个问题的方法。有没有办法用pdfbox或itext解决这个问题 如果使用,则这是一个选项:Java 如何缩小pdf的内容?,java,pdf,itext,pdfbox,Java,Pdf,Itext,Pdfbox,我有一个pdf,我需要缩小比例。该pdf是在A4肖像模式,我需要的是缩小pdf的内容到5%,并把这个到一个新的pdf大小也在A4和肖像模式。这不是一个将pdf转换为图像、缩放它们并将其放回pdf的选项。我正在寻找一种用java解决这个问题的方法。有没有办法用pdfbox或itext解决这个问题 如果使用,则这是一个选项: public void manipulatePdf(String src, String dest) throws IOException { PdfDocument
public void manipulatePdf(String src, String dest) throws IOException {
PdfDocument pdfDoc = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
int n = pdfDoc.getNumberOfPages();
PdfPage page;
for (int p = 1; p <= n; p++) {
new PdfCanvas(pdfDoc.getPage(p).newContentStreamBefore(),
new PdfResources(), pdfDoc).writeLiteral("\nq 0.05 0 0 0.05 0 0 cm\nq\n");
new PdfCanvas(pdfDoc.getPage(p).newContentStreamAfter(),
new PdfResources(), pdfDoc).writeLiteral("\nQ\nQ\n");
}
pdfDoc.close();
}
public void manufacturepdf(String src,String dest)抛出IOException{
PdfDocument pdfDoc=新PdfDocument(新PDF阅读器(src)、新PDF编写器(dest));
int n=pdfDoc.getNumberOfPages();
PDF页面;
对于(int p=1;pPDFBox 2.0.*的答案:
try (PDDocument doc = PDDocument.load(new File("...")))
{
for (int p = 0; p < doc.getNumberOfPages(); ++p)
{
PDPage page = doc.getPage(p);
try (PDPageContentStream cs = new PDPageContentStream(doc, page, AppendMode.PREPEND, true))
{
cs.saveGraphicsState();
cs.transform(Matrix.getScaleInstance(0.05f, 0.05f));
cs.saveGraphicsState();
}
try (PDPageContentStream cs = new PDPageContentStream(doc, page, AppendMode.APPEND, true))
{
cs.restoreGraphicsState();
cs.restoreGraphicsState();
}
}
doc.save(new File("...."));
}
try(PDDocument doc=PDDocument.load(新文件(“…”))
{
对于(int p=0;p
你会在左下角看到一些小东西。谢谢你的回答,很遗憾,我买不起这个版本,可能你不会展示旧版本2.1.7的解决方案?当你说我买不起这个版本时,你是什么意思?如果你避免创建封闭源代码软件并遵守AGPL,那么你可以在AGP下使用iText如果你在为一个雇主工作,你不必支付执照,这取决于你的雇主。如果你是一个自雇者,考虑通过在它上面加一个附加物来赚钱。顺便说一句:你不能再在商业环境中使用ITEX2.1.7了:参见AlPhaba。如果你只限于你的图书馆的古代版本。首先,你应该在一开始的问题中指出这一点。PDFBox<2.0如何?1.8中没有前置功能,因此需要大量的工作来模拟。更新到2.0。