【问题标题】:PDFBox: clipping text when writing to PDPageContentStream or PDPagePDFBox:写入 PDPageContentStream 或 PDPage 时剪切文本
【发布时间】:2017-07-06 19:09:54
【问题描述】:

我正在研究布局必须非常整洁和准确的 PDF 文档的选项。

文档是一种报告,在现有背景上显示数据。 在某些情况下,文本比它应该适合的房间大。

我想将文本剪辑到允许占用的精确区域(这不是换行或“省略”,因为文本大部分时间都是数字)。

这是我正在寻找的效果(这是一个示例,我不打算缩短字符串,我希望字符串保持不变,但实际上被剪裁在其允许区域之外)。

谢谢, 杰米

【问题讨论】:

    标签: pdf pdf-generation pdfbox clipping


    【解决方案1】:

    首先创建一个路径,例如与PDPageContentStream.addRect()。然后拨打PDPageContentStream.clip()。这将使当前剪切路径与您的路径相交。然后画出你想要剪裁的任何东西。

    不要忘记将整个内容放在saveGraphicsState()restoreGraphicsState() 之间,否则您的剪切路径有时会因为再次相交而变空。

    要在开发过程中验证您的剪辑路径是否正确,请将 clip() 调用替换为 stroke(),以便您可以看到它的位置。

    【讨论】:

    • Hhmmm,我刚刚看到所有PDPageContentStream 裁剪方法都会自动为路径执行n。为什么?为什么不允许同时抚摸和/或填充?
    • @mkl “一直都是这样” :-) 我认为没有必要改变这一点,我从未在 PDF 中看到除“n”之外的“W”我看过了。
    • 谢谢@TilmanHausherr,它就像一个魅力。如果可以的话,我想知道为什么 PDFBox 中没有高级功能。我假设我们都必须开发自己的函数来左对齐、右对齐、裁剪、对齐文本等。我很惊讶它不是套件的一部分。知道为什么吗?
    • 不知道为什么PDFBox是低级的,我从一开始就没有参与这个项目。也许 Boxable 可以提供帮助,它位于 PDFBox 之上。我们是一个很小的团队,有很多用户希望的东西......
    猜你喜欢
    • 2014-12-03
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多