1

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

变换坐标系

正如我所看到的,iTextSharp 使用(后记?)点作为测量单位,但我想将这些坐标转换为毫米。现在,实现这一目标的最佳方法是什么?

查看文档揭示了以下方法:

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 中完全相同的坐标创建:

替代文字

任何帮助表示赞赏。

4

2 回答 2

1

但问题是:没有 System.Drawing.Drawing2D 程序集!这个程序集是被丢弃还是发生了什么?我该怎么做才能将 iTextSharp 的坐标转换为毫米。我在这里走错路了吗?

http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx(在 System.Drawing.dll 中)

于 2009-05-14T12:42:06.370 回答
0

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

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

于 2009-05-15T06:30:39.390 回答