ITEXTSHARP를 사용하여 다른 PDF에서 좌표 시스템 및 변위 된 텍스트 문제
-
21-08-2019 - |
문제
ItextSharp 및 .NET 3.5 SP1 (C#, 추측 할 수있는대로)으로 작업하고 있으며 PdfStamper
수업. 이제 두 가지 문제가 있습니다.
좌표계 변환
내가 알 수 있듯이, 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입니다.
이것은 itextsharp에서 정확히 동일한 좌표를 사용하여 생성 된 두 번째 PDF입니다.
모든 도움이 감사합니다.
해결책
그러나 문제는 다음과 같습니다. System.Drawing.Drawing2d 어셈블리가 없습니다! 이 어셈블리가 떨어 졌습니까 아니면 무슨 일이 있었습니까? ItextSharp의 좌표를 밀리미터로 변환하기 위해 무엇을 할 수 있습니까? 내가 여기서 잘못된 길을 가고 있습니까?
http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx (System.Drawing.dll)
다른 팁
좋아, 동일한 좌표가 사용 되었음에도 불구하고 텍스트가 변위되는 두 번째 문제를 해결했습니다.
결과적으로, 첫 번째 PDF에는 가시 불가능한 트리밍 공간이 포함되었지만 두 번째 PDF는 그렇지 않았습니다. 트리밍 공간이 보이지 않기 때문에 PDF 제작자를 사용하여보기 공간이 자르었지만 나타나는 것처럼 트리밍 공간이 여전히 존재하고 좌표를 위해 계산되었습니다.