java - 将 PDFBox 中的行附加到现有页面时坐标错误

标签 java pdf pdf-generation pdfbox

我正在使用 PDFBox 1.8.11。 我正在尝试从 (0,0) 到 (x,y) 画一条线。我就是这样做的:

PDPageContentStream stream = new PDPageContentStream(document, page, true, false);
stream.setStrokingColor(80, 100, 200);
stream.setLineWidth(1.0f);
stream.drawLine(0, 0, x, y);
stream.close();

几乎所有 PDF 都可以正常工作。但对于一个 PDF,如果我附加到流(new PDPageContentStream() 的第三个参数),该线将从右下角绘制并超出页面右边框。如果我不附加到内容流,则会按预期绘制线条。

这种情况只发生在这个 PDF 中(也许还有其他一些),我想知道我是否错过了什么。也许我需要在绘图等之前重置一些坐标系?

附注页面的媒体框从(0,0)开始,等于页面大小。

提前致谢

最佳答案

实际上这篇文章(PDFBox : PDPageContentStream's append mode misbehaving)解释了这个问题。

在下面的构造函数中将最后一个参数resetContext设置为 true 解决了我的问题。

public PDPageContentStream(PDDocument document, PDPage sourcePage, 
       boolean appendContent, 
       boolean compress, boolean resetContext) 
         throws IOException

关于java - 将 PDFBox 中的行附加到现有页面时坐标错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34875775/

相关文章:

java - 斯卡拉 : Registry design pattern or similar?

java - PDF easytable - 我可以在单元格内插入表格吗?

java - 将表格添加到同一页上的现有 PDF - ITEXT

java - 使用 Java 和 FOP 设置 PDF 标题

javascript - 客户端 Microsoft Word 到 PDF 的转换——如何在 MVC3 中进行?

java - 京都橱柜安装问题

java - 如何检索 SSL 客户端正在使用的 KeyManager、TrustManager 和 SecureRandom 对象?

java - 为什么我的 Java 循环在第一次迭代时跳过第一个用户输入?

html - Weasyprint 字体问题导致所有字符被框替换

c# - 如何在 pdf 文档的所有页面上插入背景图像?