PDFBox:写入 PDPageContentStream 或 PDPage 时剪切文本
PDFBox: clipping text when writing to PDPageContentStream or PDPage
我正在研究布局 PDF 文档的选项,它必须非常整洁和准确。
该文档是一种报告,在现有背景上显示数据。
在某些情况下,文本比它应该适合的房间大。
我想将文本裁剪到允许占用的精确区域(这不是换行或 "elipsizing",因为文本大部分时间都是数字)。
这是我正在寻找的效果(这是一个例子,我不是在考虑缩短字符串,我希望字符串保持不变,但实际上被剪裁到其允许的区域之外)。
谢谢,
JM
首先创建一个路径,例如PDPageContentStream.addRect()
。然后调用PDPageContentStream.clip()
。这将使当前剪切路径与您的路径相交。然后画任何你想剪的东西。
不要忘记将整个东西放在 saveGraphicsState()
和 restoreGraphicsState()
之间,否则你的剪切路径有时会因为再次相交而变空。
要在开发时验证您的剪切路径是否正确,请将 clip()
调用替换为 stroke()
以便您可以看到它的位置。
我正在研究布局 PDF 文档的选项,它必须非常整洁和准确。
该文档是一种报告,在现有背景上显示数据。 在某些情况下,文本比它应该适合的房间大。
我想将文本裁剪到允许占用的精确区域(这不是换行或 "elipsizing",因为文本大部分时间都是数字)。
这是我正在寻找的效果(这是一个例子,我不是在考虑缩短字符串,我希望字符串保持不变,但实际上被剪裁到其允许的区域之外)。
谢谢, JM
首先创建一个路径,例如PDPageContentStream.addRect()
。然后调用PDPageContentStream.clip()
。这将使当前剪切路径与您的路径相交。然后画任何你想剪的东西。
不要忘记将整个东西放在 saveGraphicsState()
和 restoreGraphicsState()
之间,否则你的剪切路径有时会因为再次相交而变空。
要在开发时验证您的剪切路径是否正确,请将 clip()
调用替换为 stroke()
以便您可以看到它的位置。