2009-05-14 3 views
1

나는 PdfStamper 클래스를 사용하여 iTextSharp 및 .NET 3.5 SP1 (C#에서는 짐작할 수 있음)을 사용하고 기존 PDF를 수정하고 있습니다. (? 추신) : 지금은 두 가지 문제가있어iTextSharp를 사용하여 서로 다른 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 변위됩니다 정확한 위치에 놓여 있지 않습니다. 이 문제의 원인은 무엇이며 어떻게 방지 할 수 있습니까?

alt text http://i41.tinypic.com/20u5tfc.gif

이것이 iTextSharp의 동일한 좌표를 사용하여 생성 된 제 PDF이다 : 어떤 도움이 이해된다

alt text http://i44.tinypic.com/2qjzoex.gif

이 제 PDF이다.

답변

1

그러나 문제는 다음과 같습니다. System.Drawing.Drawing2D Assembly! 이 어셈블리가 떨어 졌거나 무슨 일이 있었습니까 ? iTextSharp의 좌표를 밀리미터로 변환하려면 어떻게해야합니까? 나는 틀린 길에 여기에 있냐?

http://msdn.microsoft.com/en-us/library/system.drawing.drawing2d.matrix.aspx

+0

이 수업을 어떻게 사용합니까? 이미 "using System.Drawing;"을 삽입했습니다. 그러나 System.Drawing.Drawing2D.Matrix는 인식하지 못합니다. "System.Drawing.dll"에서 무엇을 의미하는지 모르겠습니다. 다른 방법으로 이것을 포함시켜야합니까? –

+0

System.Drawing.Dll을 참조해야합니다. 프로젝트에서 References 폴더를 찾으십시오.마우스 오른쪽 단추로 참조 추가를 누른 다음 5 분 후 첫 번째 탭에서 System.Drawing.Dll을 검색하십시오. 이제 내 2 점 돌려줘! – Will

+0

일단 참조하면 예제와 같이 사용할 수 있습니다. 그들은 행렬 변환을하고 있는데, 이것은 배우거나 이해하는 것이 가장 쉬운 것이 아닙니다. 샘플 코드가 보여주는 것보다 더 많은 일을하고 싶다면 독서를해야 할 것입니다. – Will

0

자 (는 System.Drawing.dll에서), I는 텍스트를 사용하고 동일한 좌표 변위에도 불구하고 상기 제 2 문제를 해결했다.

첫 번째 PDF에는 보이지 않는 트리밍 공간이 포함되어 있지만 두 번째 PDF에는 보이지 않는 트리밍 공간이 포함되어 있습니다. 트리밍 공간이 보이지 않는 이유는 PDF 크리에이터를 사용하여 뷰 공간을 잘라내었지만 트리밍 공간이 그대로 남아있어 좌표가 계산 되었기 때문입니다.

관련 문제