1

私は iTextSharp と .NET 3.5 SP1 (ご想像のとおり、C#) を使用しており、PdfStamperクラスを使用して既存の PDF をいくつか変更しています。今、私は2つの問題を抱えています:

座標系の変換

私が見ているように、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 で置き換えられます

同じ内容の2 つの異なるPDF ファイルを変更しているときに、同じ座標がずれていて、テキストがまったく同じ位置に配置されていないことに気付きました。何が原因で、どうすれば防ぐことができますか?

これは最初の PDF です。

代替テキスト

これは、iTextSharp でまったく同じ座標を使用して作成された 2 番目の PDF です。

代替テキスト

どんな助けでも大歓迎です。

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

さて、同じ座標が使用されているにもかかわらず、テキストがずれているという2番目の問題を解決しました。

結局のところ、最初の PDF には目に見えないトリミング スペースが含まれていましたが、2 番目の PDF には含まれていませんでした。PDFクリエーターを使用してビュースペースが切り取られたため、トリミングスペースは表示されませんが、トリミングスペースはまだそこにあり、座標にカウントされているようです.

于 2009-05-15T06:30:39.390 に答える