PDFsharp
קוד פתוח .NET API לעיבוד PDF
צור, פעל, המר ועבד מסמכי PDF באמצעות ספריית C# .NET בחינם.
מה זה PDFsharp?
ספריית קוד פתוח .NET שניתן להשתמש בה כדי ליצור, לעבד, למזג, לפצל, לשנות, להדפיס ולחלץ טקסט או מטא-נתונים של קבצי PDF. ה-API של PDFsharp תומך ביצירת מסמכי PDF תוך כדי תנועה מכל שפת NET. זה גם תומך בייבוא נתונים ממקורות שונים באמצעות קבצי XML או ממשקים ישירים. הוא תומך במספר אפשרויות לפריסת עמוד, עיצוב טקסט ועיצוב מסמכים.
PDFsharp מספקת יישום גרפי המבוסס על GDI+ או WPF. ה-API מקל על עבודת המפתח על ידי מתן תכונות לשימוש בקוד מקור אחד לציור בדף PDF וכן בחלון או במדפסת. הוא תומך במספר תכונות חשובות לעיבוד קבצי PDF כגון שינוי PDF, מיזוג או פיצול קובצי PDF, המרת XPS ל-PDF, עיבוד PDF, מיצוי נתוני PDF, הטבעת גופנים והגדרות משנה, תמיכה ב-Unicode ועוד רבים.
תחילת העבודה עם PDFsharp
PDFsharp הוא בעל רישיון כפול כתוכנה AGPL/מסחרית. AGPL הוא רישיון תוכנה חופשי/פתוח.
מומלץ מאוד להשתמש ב-NuGet כדי להוסיף PDFsharp לפרויקט שלך,
פקודת NuGet
Install-Package PdfSharp
עם Visual Studio אתה יכול להתקין את NuGet Package Manager כדי לגשת בקלות לחבילות NuGet. זה עובד עם VS 2012 Express כמו גם עם מהדורות הקהילה של VS 2013 ו- VS 2015. ב-Visual Studio עבור אל "כלים" => "הרחבות ועדכונים..." כדי להתקין את מנהל החבילות של NuGet אם עדיין אין לך אותו. מנהל החבילות של NuGet יוריד עבורך את החבילה, יתקין אותה ויוסיף הפניה לפרויקט שלך.
צור ושנה מסמכי PDF באמצעות .NET API בחינם
מפתחי תוכנה יכולים להשתמש ב-PDFsharp API כדי ליצור מסמך PDF חדש בתוך יישומי .NET משלהם. לאחר יצירת המסמך ניתן להוסיף עמוד ריק וכן להוסיף גרפיקה או טקסט בקלות. זה גם מאפשר למפתחים לשנות את המסמך הקיים בהתאם לצרכיהם ולשמור אותו בשם לפי בחירתם. באמצעות השלבים הבאים תוכל ליצור ולתפעל מסמכי PDF ב-C#.
- אתחול PdfDocument
- הוסף עמוד
- קבל אובייקט XGraphics לציור
- צור גופן
- הוסף טקסט
- שמור מסמך
צור PDF באמצעות C#
// Create a new PDF document
PdfDocument pdfDocument = new PdfDocument();
// Create an empty page
PdfPage pdfPage = pdfDocument.AddPage();
// Get an XGraphics object for drawing
XGraphics xGraphics = XGraphics.FromPdfPage(pdfPage);
// Create a font
XFont xFont = new XFont("Verdana", 20, XFontStyle.BoldItalic);
// Draw the text
xGraphics.DrawString("File Format Developer Guide", xFont, XBrushes.Black,
new XRect(0, 0, pdfPage.Width, pdfPage.Height),
XStringFormats.Center);
// Save the document...
pdfDocument.Save("fileformat.pdf");
צור הערות PDF באמצעות .NET API
הערות מאפשרות למשתמשים להוסיף תוכן מותאם אישית בדפי PDF. יישומי PDF מאפשרים בדרך כלל יצירה ושינוי של סוגים שונים של הערות, כגון טקסט, שורות, הערות או צורות וכו'. PDFsharp מאפשר למתכנתים ליצור סוגים שונים של הערות PDF בתוך האפליקציות שלהם. הספרייה תומכת ביצירת הערות טקסט, קישורים והערות חותמת גומי.
צור הערת טקסט PDF באמצעות C#
// Create a PDF text annotation
PdfTextAnnotation textAnnot = new PdfTextAnnotation();
textAnnot.Title = "This is the title";
textAnnot.Subject = "This is the subject";
textAnnot.Contents = "This is the contents of the annotation.\rThis is the 2nd line.";
textAnnot.Icon = PdfTextAnnotationIcon.Note;
gfx.DrawString("The first text annotation", font, XBrushes.Black, 30, 50, XStringFormats.Default);
// Convert rectangle from world space to page space. This is necessary because the annotation is
// placed relative to the bottom left corner of the page with units measured in point.
XRect rect = gfx.Transformer.WorldToDefaultPage(new XRect(new XPoint(30, 60), new XSize(30, 30)));
textAnnot.Rectangle = new PdfRectangle(rect);
// Add the annotation to the page
page.Annotations.Add(textAnnot);
שלב מסמכי PDF מרובים באמצעות NET
האם יש לך מסמכי PDF רבים שצריך לשלב אותם למסמך אחד גדול? PDFsharp API מספק לך את הפונקציונליות לשילוב קבצי PDF מרובים לאחד עם מספר שורות קוד בלבד. מפתחים יכולים ליצור בקלות מסמך חדש מקובצי PDF קיימים. זה עשוי להיות שימושי עבור השוואה ויזואלית או מספר משימות חשובות אחרות.
שלב מסמכים באמצעות Java
// Open the input files
PdfDocument inputDocument1 = PdfReader.Open(filename1, PdfDocumentOpenMode.Import);
PdfDocument inputDocument2 = PdfReader.Open(filename2, PdfDocumentOpenMode.Import);
// Create the output document
PdfDocument outputDocument = new PdfDocument();
// Show consecutive pages facing. Requires Acrobat 5 or higher.
outputDocument.PageLayout = PdfPageLayout.TwoColumnLeft;
XFont font = new XFont("Verdana", 10, XFontStyle.Bold);
XStringFormat format = new XStringFormat();
format.Alignment = XStringAlignment.Center;
format.LineAlignment = XLineAlignment.Far;
XGraphics gfx;
XRect box;
int count = Math.Max(inputDocument1.PageCount, inputDocument2.PageCount);
for (int idx = 0; idx < count; idx++)
{
// Get page from 1st document
PdfPage page1 = inputDocument1.PageCount > idx ?
inputDocument1.Pages[idx] : new PdfPage();
// Get page from 2nd document
PdfPage page2 = inputDocument2.PageCount > idx ?
inputDocument2.Pages[idx] : new PdfPage();
// Add both pages to the output document
page1 = outputDocument.AddPage(page1);
page2 = outputDocument.AddPage(page2);
// Write document file name and page number on each page
gfx = XGraphics.FromPdfPage(page1);
box = page1.MediaBox.ToXRect();
box.Inflate(0, -10);
gfx.DrawString(String.Format("{0} • {1}", filename1, idx + 1),
font, XBrushes.Red, box, format);
gfx = XGraphics.FromPdfPage(page2);
box = page2.MediaBox.ToXRect();
box.Inflate(0, -10);
gfx.DrawString(String.Format("{0} • {1}", filename2, idx + 1),
font, XBrushes.Red, box, format);
}
// Save the document...
const string filename = "CompareDocument1_tempfile.pdf";
outputDocument.Save(filename);