Apache PDFBox: Komplett verktygslåda för PDF i Java
Extrahera text, manipulera dokument, fyll i formulär och mer - allt i ren Java
Vad är Apache PDFBox?
Apache PDFBox är ett kraftfullt Java-bibliotek med öppen källkod som är designat för sömlös PDF-behandling i Java, vilket låter utvecklare skapa, redigera och extrahera innehåll från PDF-dokument programmatiskt. Som ett av de mest populära Java-PDF-biblioteken utmärker sig PDFBox för uppgifter som att extrahera text från PDF-filer, slå samman flera PDF-filer och lägga till digitala signaturer, allt med ett lättvikts-API och noll licenskostnader. Oavsett om du behöver PDF-tolkning i Java, PDF-generering eller PDF/A-efterlevnad, stödjer detta bibliotek avancerade funktioner som OCR-integrering, formulärfyllning och HTML-till-PDF-konvertering. Med Maven-beredda beroenden (t.ex. pdfbox-maven) och omfattande dokumentation förenklar PDFBox komplexa arbetsflöden - vilket gör det idealiskt för företagsapplikationer, dokumentautomatisering och datautvinning. Jämfört med alternativ som iText utmärker sig Apache PDFBox genom sin öppen källkod-flexibilitet, aktiva community och plattformsoberoende kompatibilitet. Utforska vår PDFBox-guide för att se Java-kodexempel och låsa upp PDF-manipulationens fulla potential i Java.
Huvudfördelar med PDFBox:
- Komplett lösning: Både utvinnings- och skapandefunktioner
- Ren Java: Inga inbyggda beroenden
- Aktiv utveckling: Stöds av Apache Software Foundation
- Omfattande funktioner: Textutvinning, delning, sammanslagning, signering
- Formulärstöd: Läs och fyll i PDF-formulär
Idealisk för dokumenthanteringssystem, innehållsutvinning och PDF-automatisering.
Varför välja PDFBox?
- Mognad: Stabil sedan 2002 med regelbundna uppdateringar
- Mångsidighet: Både läs- och skrivfunktioner
- Standardstöd: Hanterar PDF 1.7 och PDF/A-dokument
- Community: Stor användarbas och omfattande dokumentation
- Integration: Fungerar med alla Java-baserade ramverk
Installation
PDFBox finns tillgängligt via Maven Central för enkel integration:
Maven
org.apache.pdfbox
pdfbox
3.0.0
Gradle
implementation 'org.apache.pdfbox:pdfbox:3.0.0'
Systemkrav: Java 8 eller senare
Kodexempel
Praktiska exempel på PDFBox-funktioner:
Exempel 1: Grundläggande textutvinning från PDF-dokument i Java
Detta exempel visar hur man extraherar text från ett PDF-dokument samtidigt som formatering och struktur bevaras. PDFBox tillhandahåller avancerade textutvinningsfunktioner som bevarar läsordning och hanterar komplexa layouter.
Utdata inkluderar:
- Strukturerat textinnehåll
- Sida-för-sida-utvinning
- Bevaring av grundläggande formatering
Exempel 2: Skapa PDF-dokument från grunden i Java
PDFBox utmärker sig både för läsning och skapande av PDF. Detta exempel demonstrerar generering av ett nytt PDF-dokument med text och grundläggande formatering.
Exempel 3: Lägga till sidhuvuden och sidfötter till PDF-sidor i Java
PDFBox tillhandahåller omfattande stöd för att lägga till sidhuvuden och sidfötter till PDF-sidor från din Java-applikation. Följande kodexempel visar hur detta uppnås med PDFBox API för Java.
Avancerade funktioner
PDFBox stödjer professionell PDF-behandling:
- Bildutvinning: Åtkomst till inbäddade bilder:
Bildutvinning
PDDocument document = PDDocument.load(new File("document.pdf")); for (PDPage page : document.getPages()) { PDResources resources = page.getResources(); for (COSName name : resources.getXObjectNames()) { PDXObject xobject = resources.getXObject(name); if (xobject instanceof PDImageXObject) { BufferedImage image = ((PDImageXObject) xobject).getImage(); // Bearbeta bild } } }
- Dokumentdelning: Dela upp PDF i flera filer:
PDF-delning
Splitter splitter = new Splitter(); List
pages = splitter.split(document); for (int i = 0; i < pages.size(); i++) { pages.get(i).save("sida-" + (i+1) + ".pdf"); } - Krypterade PDF:er: Hantera lösenordsskyddade filer:
Krypterad PDF
String password = "secure123"; FileInputStream fis = new FileInputStream("encrypted.pdf"); PDDocument doc = PDDocument.load(fis, password);
PDFBox vs iText
Här är 5 viktiga skillnader mellan PDFBox och iText:
- Licens: PDFBox har Apache-licens (öppen källkod), medan iText kräver kommersiell licens för de flesta användningsfall
- Funktionsfokus: PDFBox erbjuder balanserade läs-/skrivfunktioner, medan iText specialiserar sig på PDF-generering
- Prestanda: iText är generellt snabbare på dokumentskapande, medan PDFBox utmärker sig på textutvinning
- Community: PDFBox har bredare adoption som öppen källkod, medan iText erbjuder professionellt stöd
- Användningsfall: PDFBox är idealisk för analys och grundläggande manipulation, medan iText är bättre för storskalig PDF-generering
Sammanfattning
Apache PDFBox erbjuder omfattande PDF-behandling för Java-utvecklare. Idealisk för:
- Innehållsutvinning: Extrahera text och data från PDF-filer
- Dokumentautomatisering: Generera rapporter och formulär
- Dokumenthantering: Dela, slå samman och transformera PDF-filer
- Formulärbehandling: Läs och fyll i interaktiva formulär
Med sin öppen källkod-licens och omfattande funktionsuppsättning är PDFBox det främsta valet för Java-baserad PDF-behandling.
Liknande Produkter
- Apache POI XWPF | Open Source Java API för att skapa och ändra DOCX-filer
- DocX | Open Source .NET API för att skapa och ändra DOCX-filer
- Docx4J | Open Source Java API för att skapa och ändra DOC- och DOCX-filer
- ExcelDataReader | Open Source .NET API för att läsa XLS-, XLSX-, CSV- och kalkylbladsdokument
- FileFormat.Cells | Ceratera och uppdatera Excel-filer med C# .NET