PDFsharp
Avoimen lähdekoodin .NET-sovellusliittymä PDF-käsittelyä varten
Luo, käsittele, muunna ja käsittele PDF-dokumentteja ilmaisen C# .NET -kirjaston kautta.
Mikä on PDFsharp?
Avoimen lähdekoodin .NET-kirjasto, jota voidaan käyttää PDF-tiedostojen tekstin tai metatietojen luomiseen, hahmontamiseen, yhdistämiseen, jakamiseen, muokkaamiseen, tulostamiseen ja poimimiseen. PDFsharp API tukee PDF-dokumenttien luomista lennossa millä tahansa .NET-kielellä. Se tukee myös tietojen tuontia eri lähteistä XML-tiedostojen tai suorien käyttöliittymien kautta. Se tukee lukuisia sivuasettelu-, tekstinmuotoilu- ja asiakirjasuunnitteluvaihtoehtoja.
PDFsharp tarjoaa graafisen toteutuksen, joka perustuu joko GDI+:aan tai WPF:ään. API helpottaa kehittäjien työtä tarjoamalla ominaisuuksia yhden lähdekoodin käyttämiseen PDF-sivulle piirtämiseen sekä ikkunaan tai tulostimeen. Se tukee useita tärkeitä ominaisuuksia PDF-tiedostojen käsittelyyn, kuten PDF-tiedostojen muokkaaminen, yhdistäminen tai jakaminen, XPS-muunnos PDF-muotoon, PDF-renderöinti, PDF-tietojen poimiminen, kirjasinten upottaminen ja aliasetus, Unicode-tuki ja paljon muuta.
PDFsharpin käytön aloittaminen
PDFsharp on kaksoislisensoitu AGPL/kaupallisena ohjelmistona. AGPL on ilmainen/avoimen lähdekoodin ohjelmistolisenssi.
On erittäin suositeltavaa käyttää NuGetiä PDFsharpin lisäämiseen projektiisi,
NuGet-komento
Install-Package PdfSharp
Visual Studion avulla voit asentaa NuGet Package Managerin päästäksesi helposti NuGet-paketteihin. Se toimii VS 2012 Expressin sekä VS 2013:n ja VS 2015:n yhteisöversioiden kanssa. Siirry Visual Studiossa kohtaan "Työkalut" => "Laajennukset ja päivitykset..." asentaaksesi NuGet Package Managerin, jos sinulla ei vielä ole sitä. NuGet Package Manager lataa paketin puolestasi, asentaa sen ja lisää viitteen projektiisi.
Luo ja muokkaa PDF-dokumentteja ilmaisen .NET API:n kautta
Ohjelmistokehittäjät voivat käyttää PDFsharp APIa luodakseen uuden PDF-dokumentin omissa .NET-sovelluksissaan. Kun asiakirja on luotu, voit lisätä tyhjän sivun sekä lisätä grafiikkaa tai tekstiä helposti. Sen avulla kehittäjät voivat myös muokata olemassa olevaa dokumenttia tarpeidensa mukaan ja tallentaa sen haluamallaan nimellä. Seuraavien vaiheiden avulla voit luoda ja käsitellä PDF-dokumentteja C#:ssa.
- Alusta PdfDocument
- Lisää sivu
- Hanki XGraphics-objekti piirtämistä varten
- Luo fontti
- Lisää teksti
- Tallenna asiakirja
Luo PDF C#:lla
// 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");
Luo PDF-merkintöjä .NET API:n kautta
Huomautusten avulla käyttäjät voivat lisätä mukautettua sisältöä PDF-sivuille. PDF-sovellukset sallivat yleensä erityyppisten huomautusten, kuten tekstin, viivojen, muistiinpanojen tai muotojen, luomisen ja muokkaamisen. PDFsharpin avulla ohjelmoijat voivat luoda erilaisia PDF-merkintöjä omissa sovelluksissaan. Kirjasto tukee tekstimerkintöjen, linkkien ja kumileimamerkintöjen luomista.
Luo PDF-tekstimerkintä C#:n avulla
// 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);
Yhdistä useita PDF-asiakirjoja .NET:n kautta
Onko sinulla useita PDF-dokumentteja, jotka on yhdistettävä yhdeksi suureksi asiakirjaksi? PDFsharp API tarjoaa toiminnot useiden PDF-tiedostojen yhdistämiseen yhdeksi vain muutamalla koodirivillä. Kehittäjät voivat helposti luoda uuden asiakirjan olemassa olevista PDF-tiedostoista. Tästä voi olla hyötyä visuaalisessa vertailussa tai useissa muissa tärkeissä tehtävissä.
Yhdistä asiakirjat Javan kautta
// 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);