PDF Belge Manipülasyonu Java içinde
Aspose.PDF FOSS Java için mevcut PDF belgelerini manipüle etmek için zengin bir API seti sunar — bölme, birleştirme, sayfa çıkarma, sayfa aralıkları ekleme ve sayfalardaki içeriği yeniden boyutlandırma. Bu yetenekler PdfFileEditor içinde ve onun eşlik eden sınıfları ContentsResizeParameters ve ContentsResizeValuede yoğunlaşmıştır.
PdfFileEditor: Temel Sayfa İşlemleri
PdfFileEditor sınıfı, üst düzey PDF dosya işlemleri için merkezi bir kolaylıktır. Birden fazla PDF dosyasını birleştirme, sayfa alt kümelerini çıkarma, bir belgeyi tek tek sayfalara bölme ve bir belgeden diğerine belirli bir konumda sayfa ekleme yöntemleri sağlar.
PdfFileEditor editor = new PdfFileEditor();
// Concatenate two documents into one
editor.concatenate("first.pdf", "second.pdf", "combined.pdf");
// Extract pages 2 through 5 to a new file
editor.extract("source.pdf", 2, 5, "extracted.pdf");
Ana yöntemler şunlardır:
concatenate(inputFiles, outputFile)— birden fazla belgeyi sırayla birleştirirextract(inputFile, startPage, endPage, outputFile)— kesintisiz bir aralığı dışa aktarırextract(inputFile, pageNumbers, outputFile)— bağlantısız bir küme dışa aktarırsplitToPages(inputFile)— sayfa başına birByteArrayOutputStreamolarak bölerinsert(inputFile, insertPosition, portFile, startPage, endPage, outputFile)— bir aralık eklerdelete(inputFile, pageNumbers, outputFile)— belirli sayfaları kaldırırappend(inputFile, portFile, startPage, endPage, outputFile)— bir sayfa aralığını ekler
Büyük dosyalar için, setUseDiskBuffer(true) dahili depolamayı heap’ten diske değiştirir.
ContentsResizeParameters ile İçerik Yeniden Boyutlandırma
PdfFileEditor.resizeContents(), mevcut sayfa sınırları içinde içeriği ayarlar. Her kenar boşluğu — sol, sağ, üst, alt — ve içerik genişliği ve yüksekliği, ContentsResizeValue örnekleri olarak belirtilir; bu örnekler ContentsResizeValue.percents(value) veya ContentsResizeValue.units(value) fabrika yöntemleriyle oluşturulur.
try (Document doc = new Document("input.pdf")) {
PdfFileEditor editor = new PdfFileEditor();
ContentsResizeParameters params = new ContentsResizeParameters(
ContentsResizeValue.percents(10), // left margin
ContentsResizeValue.percents(80), // content width
ContentsResizeValue.percents(10), // right margin
ContentsResizeValue.percents(10), // top margin
ContentsResizeValue.percents(80), // content height
ContentsResizeValue.percents(10) // bottom margin
);
editor.resizeContents(doc, params);
doc.save("resized.pdf");
}
ContentsResizeParameters için altı argümanlı yapıcı, değerleri şu sırayla kabul eder: leftMargin, contentsWidth, rightMargin, topMargin, contentsHeight, bottomMargin. Yüzde tabanlı değerler kullanıldığında altı değer toplamı %100 olmalı, ya da mutlak nokta değerleri kullanıldığında sayfa boyutlarıyla eşleşmelidir.
Belirli Sayfaları Yeniden Boyutlandırma
Yalnızca bir alt küme sayfa yeniden boyutlandırma gerektirdiğinde, sayfa numaralarının bir tamsayı dizisini kabul eden aşırı yükleme, bu sayfalara hedeflenir ve geri kalanları değiştirilmeden bırakır:
PdfFileEditor editor = new PdfFileEditor();
ContentsResizeParameters params = new ContentsResizeParameters(
ContentsResizeValue.units(28), // left margin in points
ContentsResizeValue.units(540), // content width
ContentsResizeValue.units(28), // right margin
ContentsResizeValue.units(28), // top margin
ContentsResizeValue.units(786), // content height
ContentsResizeValue.units(28) // bottom margin
);
// Only resize pages 1 and 3
editor.resizeContents(doc, new int[]{1, 3}, params);
ContentsResizeValue.getValue() ve isPercent(), depolanan değeri incelemeye ve bunun yüzde mi yoksa mutlak nokta sayısı mı olduğunu belirlemeye olanak tanır.
Kitapçık ve N-Up Düzeni
PdfFileEditor, iki taraflı kitapçık sırasına göre sayfaları yerleştirmek için makeBooklet() ve bir sayfada birden çok sayfa döşemek için makeNUp() içerir. Her iki yöntem de dosya yollarını veya akışları kabul eder:
PdfFileEditor editor = new PdfFileEditor();
// Print as a folded booklet
editor.makeBooklet("input.pdf", "booklet.pdf");
// Tile 2 columns × 3 rows per sheet
editor.makeNUp("input.pdf", "nup.pdf", 2, 3);
PdfPageEditor: Sayfa Başına Yakınlaştırma Kontrolü
PdfPageEditor, yakınlaştırma seviyesi gibi bireysel sayfa özelliklerini hedef alır. setZoom(), belgenin bir görüntüleyicide açıldığında başlangıç büyütmesini kontrol eden bir float çarpanı kabul eder:
PdfPageEditor pageEditor = new PdfPageEditor();
pageEditor.bindPdf("input.pdf");
pageEditor.setZoom(1.5f);
pageEditor.save("zoomed.pdf");
0.0 değerleri veya negatif değerler reddedilir — getZoom() bu durumlarda 1.0 döndürür. Bu, PdfPageEditor‘yi erişilebilirlik veya kiosk ekranı kullanım durumları için belirli bir büyütme düzeyinde açılması gereken belgeleri hazırlamaya uygun kılar.
Başlarken
Maven bağımlılığını ekleyin ve facades paketini içe aktarın:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-pdf-foss</artifactId>
<version>26.8.0</version>
</dependency>import org.aspose.pdf.*;
import org.aspose.pdf.facades.*;
Aspose.PDF FOSS for Java MIT lisanslıdır ve https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Java adresinde mevcuttur.