【发布时间】:2015-05-19 02:28:33
【问题描述】:
我正在处理一系列 PDF 文件。其中许多都有字段,我可以使用 iTextSharp 填充这些字段。
我的问题是有一个静态 PDF 似乎报告了一个奇怪的大小,9.5 X 12。页面大小应该是 8.5 X 11,如果使用 Acrobat 阅读器打开,它打印得很好。
为了解决这个问题,我想创建一个新的 PDF 文档,使用正确的页面大小,然后将静态文件读入新文档,保存并打印。
我已经阅读了一些关于 SO 的帖子,并进行了多次搜索以寻找解决方案,所有这些似乎都绕过了我的特定问题。
有没有办法使用正确的页面大小将现有 PDF 复制到新文档?
谢谢
更新
听从布鲁诺的建议,我仔细检查了裁剪框和媒体框。我正在使用的 PDF 两者都有。裁剪框数组是
[28.008, 38.016, 640.008, 830.016]
而媒体框数组是
[0, 0, 668.016, 848.016]
我可以更改右上角的点,使裁剪框和媒体框成为同一个裁剪框
[28.008, 38.016, 612, 792]
还有媒体框
[0, 0, 612, 792]
但是这样做会使“文本”向右和顶部移动太多,留下不均匀的边距。
我发现通过改变裁剪框的左下角坐标,我可以移动文本。实际上,将裁剪框设置为 40、40、612、792 是可行的,但是顶部和底部边距非常窄。
我需要媒体框为 0、0、612、792。这不是问题。但是,如何缩小裁剪框并使页面上的文本居中?我一定是错过了什么。
我在他的书中遵循了布鲁诺的 RotatePages 方法,并且还查看了这个答案,iTextSharp copy document, resize to custom size, and center
但无论我对裁剪框所做的任何更改似乎都会放大它。
非常感谢任何建议
【问题讨论】:
-
将文件加载到 PdfReader 中,根据需要更改裁剪框,然后使用 PdfStamper 保存所有内容。
-
在你做任何事情之前,你应该解释你所说的意思 我的问题是有一个静态 PDF 似乎报告了一个奇怪的大小,9.5 X 12。页面大小应该为 8.5 X 11,如果使用 Acrobat 阅读器打开,打印效果很好。 也许您有一个 PDF,其中 MediaBox 为 9.5 x 12,CropBox 为 8.5 X 11。这可以解释为什么 Adobe Reader 会正确处理它。查看 MediaBox 可能会引起您的困惑,而实际上您应该查看 CropBox。请澄清。
-
感谢你们两位的cmets。布鲁诺,来解决你的评论。你是对的。媒体框是 9.5 X 12,而裁剪框是 8.5 X 12。但是,打印机仍然不会打印页面。那么如何将媒体框缩小到合适的尺寸呢?
-
将媒体框设置为裁剪框值。
标签: c# itextsharp