PDFsharp
Nyílt forráskódú .NET API a PDF-feldolgozáshoz
PDF-dokumentumok létrehozása, manipulálása, konvertálása és feldolgozása az ingyenes C# .NET könyvtáron keresztül.
Mi az a PDFsharp?
Nyílt forráskódú .NET-könyvtár, amely PDF-fájlok szövegének vagy metaadatainak létrehozására, megjelenítésére, egyesítésére, felosztására, módosítására, nyomtatására és kibontására használható. A PDFsharp API támogatja a PDF dokumentumok menet közbeni létrehozását bármely .NET nyelvről. Ezenkívül támogatja az adatok importálását különböző forrásokból XML-fájlokon vagy közvetlen interfészeken keresztül. Számos lehetőséget támogat az oldalelrendezésre, a szövegformázásra és a dokumentumtervezésre.
A PDFsharp grafikus megvalósítást biztosít GDI+ vagy WPF alapján. Az API megkönnyíti a fejlesztő munkáját azáltal, hogy olyan funkciókat biztosít, amelyek segítségével egyetlen forráskódot használhat a PDF-oldalra, valamint az ablakba vagy a nyomtatóra való rajzoláshoz. Számos fontos funkciót támogat a PDF-fájlok feldolgozásához, mint például a PDF módosítása, PDF-ek egyesítése vagy felosztása, XPS-ből PDF átalakítás, PDF-megjelenítés, PDF-adatok kinyerése, betűtípus beágyazása és részbeállítása, Unicode-támogatás és még sok más.
A PDFsharp használatának első lépései
A PDFsharp kettős licenccel rendelkezik, mint AGPL/kereskedelmi szoftver. Az AGPL egy ingyenes/nyílt forráskódú szoftverlicenc.
Erősen ajánlott a NuGet használata PDFsharp hozzáadásához a projekthez,
NuGet parancs
Install-Package PdfSharp
A Visual Studio segítségével telepítheti a NuGet Package Managert a NuGet csomagok egyszerű eléréséhez. Működik a VS 2012 Expressszel, valamint a VS 2013 és VS 2015 közösségi kiadásaival. A Visual Studióban lépjen az "Eszközök" oldalra => "Bővítmények és frissítések..." a NuGet Package Manager telepítéséhez, ha még nem rendelkezik vele. A NuGet Package Manager letölti a csomagot, telepíti, és hivatkozást ad a projekthez.
PDF-dokumentumok létrehozása és módosítása ingyenes .NET API-n keresztül
A szoftverfejlesztők a PDFsharp API segítségével új PDF-dokumentumot hozhatnak létre saját .NET-alkalmazásaikon belül. A dokumentum létrehozása után könnyedén hozzáadhat egy üres oldalt, valamint könnyedén beilleszthet grafikát vagy szöveget. Lehetővé teszi a fejlesztők számára azt is, hogy a meglévő dokumentumot igényeiknek megfelelően módosítsák, és tetszés szerinti néven elmentsék. A következő lépésekkel PDF-dokumentumokat hozhat létre és kezelhet C#-ban.
- PdfDocument inicializálása
- Oldal hozzáadása
- Szerezzen be egy XGraphics objektumot a rajzoláshoz
- Hozzon létre egy betűtípust
- Szöveg hozzáadása
- Dokumentum mentése
PDF létrehozása C# használatával
// 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-jegyzetek létrehozása .NET API-n keresztül
A megjegyzések lehetővé teszik a felhasználók számára, hogy egyéni tartalmat adjanak a PDF-oldalakhoz. A PDF-alkalmazások általában lehetővé teszik különféle típusú megjegyzések létrehozását és módosítását, például szöveget, vonalakat, jegyzeteket vagy alakzatokat stb. A PDFsharp lehetővé teszi a programozók számára, hogy különféle típusú PDF-annotációkat hozzanak létre saját alkalmazásaikon belül. A könyvtár támogatja a szöveges megjegyzések, hivatkozások és gumibélyegzős megjegyzések létrehozását.
PDF szöveges megjegyzés létrehozása a C# segítségével
// 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);
Több PDF dokumentum egyesítése .NET-en keresztül
Számos PDF dokumentuma van, amelyeket egyetlen nagy dokumentummá kell egyesíteni? A PDFsharp API azt a funkcionalitást nyújtja, hogy több PDF-fájlt egyetlen kóddal egyesítsen néhány sornyi kóddal. A fejlesztők könnyen létrehozhatnak új dokumentumot a meglévő PDF-fájlokból. Ez hasznos lehet vizuális összehasonlításhoz vagy számos más fontos feladathoz.
Kombinálja a dokumentumokat Java-n keresztül
// 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);