繁体   English   中英

使用iTextSharp在不同PDF中的坐标系和置换文本存在问题

[英]Problem with coordinate system and displaced Text in different PDFs using iTextSharp

我正在使用iTextSharp和.NET 3.5 SP1(使用C#,您可能会猜到),并使用PdfStamper类修改一些现有的PDF。 现在我有两个问题:

转换坐标系

如我所见,iTextSharp将(postscript?)点用作度量单位,但我想将这些坐标转换为毫米。 现在,实现此目标的最佳方法是什么?

查看文档可以发现以下方法:

PdfContentByte cb = new PdfContentByte();
System.Drawing.Drawing2D.Matrix scale = new System.Drawing.Drawing2D.Matrix(
    0.352777778, 0, 0.352777778, 0, 0, 0); // 1 point = 0.352777778 mm
cb.Transform(scale);

我希望我得到正确的转换矩阵。 但是问题是:没有System.Drawing.Drawing2D程序集! 这个程序集掉了还是发生了什么? 如何将iTextSharp的坐标转换为毫米。 我在这里走错路了吗?

PDF中的文本使用相同的坐标替换为其他PDF

我注意到,在修改两个具有相同内容的 不同 PDF文件时,会替换相同的坐标,并且文本不会放置在完全相同的位置。 是什么原因造成的,如何预防?

这是第一个PDF:

替代文字

这是第二个PDF,使用iTextSharp中完全相同的坐标创建:

替代文字

任何帮助表示赞赏。

但是问题是:没有System.Drawing.Drawing2D程序集! 这个程序集掉了还是发生了什么? 如何将iTextSharp的坐标转换为毫米。 我在这里走错路了吗?

http://msdn.microsoft.com/zh-cn/library/system.drawing.drawing2d.matrix.aspx (位于System.Drawing.dll中)

好的,我解决了第二个问题,尽管使用了相同的坐标,但文本仍被替换。

事实证明,第一个PDF包含一些不可见的修剪空间,第二个却没有。 修剪空间不可见,因为视图空间是使用PDF创建器裁剪的,但是看起来修剪空间仍然存在并计算坐标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM