![](https://products-qa.fileformat.com/uk/pdf/net/pdfsharp/header-image.png)
PDFsharp
Open Source .NET API для обробки PDF
Створюйте, маніпулюйте, конвертуйте та обробляйте PDF-документи за допомогою безкоштовної бібліотеки C# .NET.
Що таке PDFsharp?
Бібліотека .NET з відкритим вихідним кодом, яку можна використовувати для створення, візуалізації, об’єднання, поділу, зміни, друку та вилучення тексту або метаданих PDF-файлів. PDFsharp API підтримує створення документів 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 для легкого доступу до пакетів NuGet. Він працює з VS 2012 Express, а також із випусками спільноти VS 2013 і VS 2015. У Visual Studio перейдіть до «Інструменти» => «Розширення та оновлення...», щоб інсталювати диспетчер пакетів NuGet, якщо його ще немає. Менеджер пакетів NuGet завантажить пакет для вас, встановить його та додасть посилання на ваш проект.
Створюйте та змінюйте PDF-документи за допомогою безкоштовного API .NET
Розробники програмного забезпечення можуть використовувати 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);