[英]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.