مشكلة في نظام الإحداثيات والنص المزاح في ملفات PDF مختلفة باستخدام iTextSharp

StackOverflow https://stackoverflow.com/questions/863095

سؤال

أنا أعمل مع iTextSharp و.NET 3.5 SP1 (في C#، كما يمكنك تخمين) وأقوم بتعديل بعض ملفات PDF الموجودة باستخدام PdfStamper فصل.الآن لدي مشكلتان:

تحويل نظام الإحداثيات

كما أرى، يستخدم 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 الأول:

alt text

هذا هو ملف PDF الثاني، الذي تم إنشاؤه باستخدام نفس الإحداثيات في iTextSharp:

alt text

هو موضع تقدير أي مساعدة.

هل كانت مفيدة؟

المحلول

لكن المشكلة هي:لا يوجد System.drawing.drawing2d التجمع!هل تم إسقاط هذه التجميع أم ما الذي حدث لها؟ماذا يمكنني أن أفعل لتحويل إحداثيات itextsharp إلى ملليمتر.هل أنا في الطريق الخطأ هنا؟

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

نصائح أخرى

حسنًا، لقد قمت بحل المشكلة الثانية وهي إزاحة النص بالرغم من استخدام نفس الإحداثيات.

كما اتضح فيما بعد، تضمن ملف PDF الأول بعض مساحة التشذيب غير المرئية، بينما لم يتضمن الملف الثاني.مساحة القطع غير مرئية لأنه تم اقتصاص مساحة العرض باستخدام منشئ PDF، ولكن كما يبدو فإن مساحة القطع كانت لا تزال موجودة وتم احتسابها للإحداثيات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top