המרת דף PDF לתמונה עם ITextSharp
-
אני עשיתי כזה דבר בעבר ע"י הספרייה GhostScript.
אינני זוכר בדיוק פרטים, אבל נסה לראות כאלו שעשו, כמו:
http://www.codeproject.com/Articles/32274/How-To-Convert-PDF-to-Image-Using-Ghostscript-APIאם אתה עדיין לא מצליח אחפש את הקוד שלי.
עכשיו בחיפוש מצאתי משהו שנראה קל יותר:
https://code.google.com/p/lib-pdf/פורסם במקור בפורום CODE613 ב03/10/2013 13:04 (+03:00)
-
תודה, אם אפשר אני מעדיף להמשיך לעבוד עם ITEXT כיון שבכל מקרה הוא כבר שימוש אצלי ועדיף לי למעט בנפח, אבל אי אפשר אשמח לקבל דוגמאות אחרות.
אני הבנתי מייד שאתה מעדיף, אבל באמת זה לא אפשרי.
iTextSharp לא מטפל כלל וכלל ברינדור PDF לתצוגה, וממילא זה ממש לא התפקיד והתחום שלו.פורסם במקור בפורום CODE613 ב03/10/2013 17:43 (+03:00)
-
מצאתי את הפרוייקט שעשיתי.
הוא משתמש במחלקה הזאת: https://github.com/mephraim/ghostscriptsharp.
(צריך לקמפל את הפרוייקט GhostScriptSharp, ולהוסיף רפרנס אליו, וגם לייבא לפרוייקט את הDLL שבתיקייה ThirdParty (זה הGhostScript). במאפייני הDLL בVS צריך לדאוג שיהיה Copy בAction).הנה קוד פשוט:
GhostscriptSharp.GhostscriptWrapper.GeneratePageThumb(fileName, "c:\1.gif", 1, 100, 100)
הפרמטרים: מקור, יעד, עמוד, מימד אורך ורוחב.
אבל הלינק ההוא מגוגל קוד אולי שווה הצצה.
פורסם במקור בפורום CODE613 ב03/10/2013 18:49 (+03:00)
-
@דוד ל.ט.
אבל הלינק ההוא מגוגל קוד אולי שווה הצצה.
עשיתי פרוייקט חדש עם רפרנס ל libpdf
וזה הקודprivate void button1_Click(object sender, EventArgs e) { using (FileStream file = File.OpenRead(@"C:\S.pdf")) // in file { var bytes = new byte[file.Length]; file.Read(bytes, 0, bytes.Length); using (var pdf = new LibPdf(bytes)) { byte[] pngBytes = pdf.GetImage(0, ImageType.PNG); // image type using (var outFile = File.Create(@"C:\S.PNG")) // out file { outFile.Write(pngBytes, 0, pngBytes.Length); } } } }
אבל קיבלתי שגיאה:
Could not load file or assembly 'libpdf.dll' or one of its dependencies. המודול שצוין לא נמצא.אני אבדוק את GhostScriptSharp שהבאת אבל הוא די שמן משהו כמו 12 מגה.
@דוד ל.ט.
iTextSharp לא מטפל כלל וכלל ברינדור PDF לתצוגה, וממילא זה ממש לא התפקיד והתחום שלו.
נכון, אבל תקן אותי אם אני טועה, אני חושב שכיון שיש לנו את כל המידע על דף הPDF אנו יכולים ליצור תמונה עם פקודות DrawImage ו DrawString שהרי זה לא בעיה לחלץ מתוך הדף את התמונות שלו וכן כנראה יש דרך לדעת כל אות ואות מה ה X וה Y שלה וכן מה הגופן שלה וכו' וכך אפשר ליצור תמונה שתראה ממש כמו דף ה PDF. מי שמכיר את ITEXT טוב בטח ידע להגיד אם אני צודק או לא.
פורסם במקור בפורום CODE613 ב03/10/2013 19:37 (+03:00)
-
http://www.codeplex.com/site/search?query=pdf&sortBy=Relevance&licenses=|&refinedSearch=true
http://stackoverflow.com/questions/3193110/converting-pdf-to-tiff-or-text-in-c-sharp
פורסם במקור בפורום CODE613 ב06/10/2013 00:35 (+03:00)
-
אבל קיבלתי שגיאה: [code]Could not load file or assembly 'libpdf.dll' or one of its dependencies. המודול שצוין לא נמצא.
שים את כל הDLL בתיקיית ההרצה ונסה שוב.
נכון, אבל תקן אותי אם אני טועה, אני חושב שכיון שיש לנו את כל המידע על דף הPDF אנו יכולים ליצור תמונה עם פקודות DrawImage ו DrawString שהרי זה לא בעיה לחלץ מתוך הדף את התמונות שלו וכן כנראה יש דרך לדעת כל אות ואות מה ה X וה Y שלה וכן מה הגופן שלה וכו' וכך אפשר ליצור תמונה שתראה ממש כמו דף ה PDF. מי שמכיר את ITEXT טוב בטח ידע להגיד אם אני צודק או לא.
אענה לך רק, שקיימות בקושי תוכנות בשוק להצגת PDF, וזה מראה שהמשימה שלך לא קלה.
אם המידע היה בצורה מסודרת כמו שאתה אומר, אז ברור שהיה גם קל לרנדר.
הבעיה שיש מידי שלל של אפשרויות בPDF. לדוגמא לפעמים מצויין מרווח בין תווים, ולפעמים רק את גודל השורה הסופי ולפעמים וכו'.פורסם במקור בפורום CODE613 ב06/10/2013 13:22 (+03:00)