PDFsharp
API .NET منبع باز برای پردازش PDF
ایجاد، دستکاری، تبدیل و پردازش اسناد PDF از طریق کتابخانه C#.NET رایگان.
PDFsharp چیست؟
کتابخانه منبع باز دات نت که می تواند برای ایجاد، رندر، ادغام، تقسیم، اصلاح، چاپ و استخراج متن یا متا داده فایل های PDF استفاده شود. PDFsharp API از ایجاد اسناد PDF در لحظه از هر زبان دات نت پشتیبانی می کند. همچنین از وارد کردن داده ها از منابع مختلف از طریق فایل های XML یا رابط های مستقیم پشتیبانی می کند. از گزینه های متعددی برای طرح بندی صفحه، قالب بندی متن و طراحی سند پشتیبانی می کند.
PDFsharp پیاده سازی گرافیکی را بر اساس GDI+ یا WPF ارائه می دهد. API با ارائه ویژگی هایی برای استفاده از یک کد منبع برای طراحی روی صفحه PDF و همچنین در پنجره یا چاپگر، کار توسعه دهنده را آسان می کند. چندین ویژگی مهم برای پردازش فایلهای PDF مانند اصلاح PDF، ادغام یا تقسیم PDF، تبدیل XPS به PDF، رندر PDF، استخراج دادههای PDF، تعبیه فونت و زیرمجموعه، پشتیبانی از یونیکد و بسیاری موارد دیگر را پشتیبانی میکند.
شروع به کار با PDFsharp
PDFsharp دارای مجوز دوگانه به عنوان نرم افزار AGPL/Commercial است. AGPL یک مجوز نرم افزاری رایگان/متن باز است.
استفاده از NuGet برای افزودن PDFsharp به پروژه خود بسیار توصیه می شود.
دستور NuGet
Install-Package PdfSharp
با ویژوال استودیو می توانید NuGet Package Manager را نصب کنید تا به راحتی به بسته های NuGet دسترسی داشته باشید. با VS 2012 Express و همچنین با نسخه های جامعه VS 2013 و VS 2015 کار می کند. در Visual Studio به "Tools" بروید => «افزونهها و بهروزرسانیها...» برای نصب NuGet Package Manager اگر هنوز آن را ندارید. NuGet Package Manager بسته را برای شما دانلود می کند، آن را نصب می کند و یک مرجع به پروژه شما اضافه می کند.
ایجاد و اصلاح اسناد PDF از طریق API رایگان NET
توسعه دهندگان نرم افزار می توانند از PDFsharp API برای ایجاد یک سند PDF جدید در داخل برنامه های NET خود استفاده کنند. پس از ایجاد سند، می توانید یک صفحه خالی اضافه کنید و همچنین گرافیک یا متن را به راحتی وارد کنید. همچنین توسعه دهندگان را تسهیل می کند تا سند موجود را مطابق با نیاز خود تغییر دهند و آن را با نام مورد نظر خود ذخیره کنند. با استفاده از مراحل زیر می توانید اسناد PDF را در سی شارپ تولید و دستکاری کنید.
- PdfDocument را راه اندازی کنید
- اضافه کردن صفحه
- یک شی XGraphics برای طراحی دریافت کنید
- یک فونت ایجاد کنید
- اضافه کردن متن
- ذخیره سند
ایجاد PDF با استفاده از سی شارپ
// 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 را از طریق دات نت ترکیب کنید
آیا اسناد PDF متعددی دارید که باید در یک سند بزرگ ترکیب شوند؟ PDFsharp API عملکردی را برای ترکیب چندین فایل PDF در یک فایل تنها با چند خط کد به شما ارائه می دهد. توسعه دهندگان به راحتی می توانند یک سند جدید از فایل های PDF موجود ایجاد کنند. این ممکن است برای مقایسه بصری یا چندین کار مهم دیگر مفید باشد.
ترکیب اسناد از طریق جاوا
// 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);