【问题标题】:Itextsharp resize(as in zoom-out, not crop, not compress) pdf from 210x297 to 197x279Itextsharp 调整大小(如缩小,不裁剪,不压缩)pdf 从 210x297 到 197x279
【发布时间】:2010-04-23 07:14:29
【问题描述】:

如何将现有的 pdf 调整为另一种格式。我不想裁剪 pdf,它必须缩小。 (用于打印问题)

当我尝试这个时它不起作用,因为 pdf 被裁剪而不是缩放

document.SetPageSize(new Rectangle(558.40f, 790.83f)); // 558.40f == 197mm

【问题讨论】:

    标签: c# pdf pdf-generation itextsharp itext


    【解决方案1】:

    很可能是因为 PDF 不会根据页面大小进行缩放。当您设置页面大小时,我指的是页面元素 MediaBox,您正在定义呈现区域的物理大小。无论呈现区域如何,页面上的所有内容都以相同的比例绘制。

    为了改变这一点,您需要截取内容流并预先进行矩阵运算以进行所需的缩放。不知道在iTextSharp中能不能做到这一点,但是实际的PDF操作符是m,如果你插入这个:

    sx sy 0 0 0 0 m
    

    其中 sx 和 sy 是浮点数,表示您要应用的 X 和 Y 中的比例。在您的情况下,您将 X 从 210 更改为 197,即 X 中的 0.938 比例。Y 从 297 变为 279,因此比例为 0.939,因此您需要插入:

    .938 .939 0 0 0 0 m
    

    进入内容流以影响除了更改 MediaBox 之外的更改。

    【讨论】:

    • hm,您有更多信息可以在哪里更改流?我不是 byte[] pdf 专家:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-27
    • 2012-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多