Bekerja dengan Pencetakan PDF
Mencetak File PDF ke Printer Default menggunakan Pengaturan Printer dan Halaman
Kelas PdfViewer memungkinkan Anda untuk mencetak file PDF ke printer default. Oleh karena itu, Anda perlu membuat objek PdfViewer dan membuka PDF menggunakan metode openPdfFile(..).
Panggil metode printDocument(..) untuk mencetak PDF ke printer default.
Cuplikan kode berikut menunjukkan cara mencetak PDF ke printer default dengan Pengaturan printer dan halaman.
public static void PrintingPDFFile() {
// Buat objek PdfViewer
PdfViewer viewer = new PdfViewer();
// Buka file PDF input
viewer.bindPdf(_dataDir + "sample.pdf");
// Tetapkan atribut untuk pencetakan
viewer.setAutoResize(true); // Cetak file dengan ukuran yang disesuaikan
viewer.setAutoRotate(true); // Cetak file dengan rotasi yang disesuaikan
viewer.setPrintPageDialog(false); // Jangan tampilkan dialog nomor halaman saat mencetak
// Buat objek untuk pengaturan printer dan halaman serta PrintDocument
PdfPrinterSettings printerSettings = new PdfPrinterSettings();
PrintPageSettings pageSettings = new PrintPageSettings();
// Tetapkan nama printer
printerSettings.setPrinterName("Microsoft Print to PDF");
// Tetapkan UkuranHalaman (jika diperlukan)
pageSettings.setPaperSize(new PrintPaperSize("A4", 827, 1169));
// Tetapkan MarginHalaman (jika diperlukan)
pageSettings.setMargins(new PrinterMargins(0, 0, 0, 0));
// Cetak dokumen menggunakan pengaturan printer dan halaman
viewer.printDocumentWithSettings(pageSettings, printerSettings);
// Tutup file PDF setelah mencetak
viewer.close();
}
Untuk menampilkan dialog cetak, coba gunakan cuplikan kode berikut:
public static void PrintingPDFDisplayPrintDialog() {
// Buat objek PdfViewer
PdfViewer viewer = new PdfViewer();
// Buka file PDF input
viewer.bindPdf(_dataDir + "sample.pdf");
// Atur atribut untuk pencetakan
viewer.setAutoResize(true); // Cetak file dengan ukuran yang disesuaikan
viewer.setAutoRotate(true); // Cetak file dengan rotasi yang disesuaikan
viewer.setPrintPageDialog(true);
// Buat objek untuk pengaturan printer dan halaman serta PrintDocument
PdfPrinterSettings printerSettings = new PdfPrinterSettings();
PrintPageSettings pageSettings = new PrintPageSettings();
// Atur UkuranHalaman (jika diperlukan)
pageSettings.setPaperSize(new PrintPaperSize("A4", 827, 1169));
// Atur MarginHalaman (jika diperlukan)
pageSettings.setMargins(new PrinterMargins(0, 0, 0, 0));
java.awt.print.PrinterJob pj = java.awt.print.PrinterJob.getPrinterJob();
if (pj.printDialog()) {
printerSettings.setPrinterName(pj.getPrintService().getName());
printerSettings.setCopies((short) pj.getCopies());
// Cetak dokumen menggunakan pengaturan printer dan halaman
viewer.printDocumentWithSettings(pageSettings, printerSettings);
}
// Tutup file PDF setelah mencetak
viewer.close();
}
Cetak PDF ke Printer Lunak
Ada printer yang mencetak ke file. Kami mengatur nama printer virtual, dan, dengan analogi dengan contoh sebelumnya, kami membuat pengaturan.
public static void PrintingPDFToSoftPrinter() {
// Buat objek PdfViewer
PdfViewer viewer = new PdfViewer();
// Buka file PDF input
viewer.bindPdf(_dataDir + "sample.pdf");
// Atur atribut untuk pencetakan
viewer.setAutoResize(true); // Cetak file dengan ukuran yang disesuaikan
viewer.setAutoRotate(true); // Cetak file dengan rotasi yang disesuaikan
viewer.setPrintPageDialog(false); // Jangan tampilkan dialog nomor halaman saat mencetak
// Buat objek untuk pengaturan printer dan halaman serta PrintDocument
PdfPrinterSettings printerSettings = new PdfPrinterSettings();
PrintPageSettings pageSettings = new PrintPageSettings();
// Atur printer Microsoft Soft Printer
printerSettings.setPrinterName("Microsoft Print to PDF");
// atau Adobe
// printerSettings.setPrinterName("Adobe PDF");
// Atur UkuranHalaman (jika diperlukan)
pageSettings.setPaperSize(new PrintPaperSize("A4", 827, 1169));
// Atur MarginHalaman (jika diperlukan)
pageSettings.setMargins(new PrinterMargins(0, 0, 0, 0));
// Cetak dokumen menggunakan pengaturan printer dan halaman
viewer.printDocumentWithSettings(pageSettings, printerSettings);
// Tutup file PDF setelah pencetakan
viewer.close();
}
Menyembunyikan Dialog Cetak
Aspose.PDF untuk Java memungkinkan Anda untuk menyembunyikan dialog cetak. Untuk ini gunakan metode getPrintPageDialog.
Cuplikan kode berikut menunjukkan cara menyembunyikan dialog cetak.
public static void PrintingPDFHidePrintDialog() {
// Buat objek PdfViewer
PdfViewer viewer = new PdfViewer();
// Buka file PDF input
viewer.bindPdf(_dataDir + "sample.pdf");
// Atur atribut untuk pencetakan
viewer.setAutoResize(true); // Cetak file dengan ukuran yang disesuaikan
viewer.setAutoRotate(true); // Cetak file dengan rotasi yang disesuaikan
viewer.setPrintPageDialog(false); // Jangan tampilkan dialog nomor halaman saat mencetak
// Buat objek untuk pengaturan printer dan halaman serta PrintDocument
PdfPrinterSettings printerSettings = new PdfPrinterSettings();
PrintPageSettings pageSettings = new PrintPageSettings();
// Atur printer Microsoft Soft Printer
printerSettings.setPrinterName("Microsoft Print to PDF");
// Atur Ukuran Halaman (jika diperlukan)
pageSettings.setPaperSize(new PrintPaperSize("A4", 827, 1169));
// Atur Margin Halaman (jika diperlukan)
pageSettings.setMargins(new PrinterMargins(0, 0, 0, 0));
// Cetak dokumen menggunakan pengaturan printer dan halaman
viewer.printDocumentWithSettings(pageSettings, printerSettings);
// Tutup file PDF setelah mencetak
viewer.close();
}
Mencetak PDF Berwarna ke File XPS sebagai Grayscale
Dokumen PDF berwarna dapat dicetak ke printer XPS sebagai grayscale, menggunakan PdfViewer. Untuk mencapainya, Anda perlu menggunakan properti PdfViewer.PrintAsGrayscale dan mengaturnya ke true.
Cuplikan kode berikut menunjukkan implementasi dari Properti PdfViewer.PrintAsGrayscale.
public static void PrintingPDFasGrayscale() {
// Buat objek PdfViewer
PdfViewer viewer = new PdfViewer();
// Buka file PDF input
viewer.bindPdf(_dataDir + "sample.pdf");
// Atur atribut untuk pencetakan
viewer.setAutoResize(true); // Cetak file dengan ukuran yang disesuaikan
viewer.setAutoRotate(true); // Cetak file dengan rotasi yang disesuaikan
viewer.setPrintAsGrayscale(true);
// Buat objek untuk pengaturan printer dan halaman serta PrintDocument
PdfPrinterSettings printerSettings = new PdfPrinterSettings();
PrintPageSettings pageSettings = new PrintPageSettings();
// Atur printer Microsoft Soft Printer
printerSettings.setPrinterName("Microsoft Print to PDF");
// Atur UkuranHalaman (jika diperlukan)
pageSettings.setPaperSize(new PrintPaperSize("A4", 827, 1169));
// Atur MarginHalaman (jika diperlukan)
pageSettings.setMargins(new PrinterMargins(0, 0, 0, 0));
// Cetak dokumen menggunakan pengaturan printer dan halaman
viewer.printDocumentWithSettings(pageSettings, printerSettings);
// Tutup file PDF setelah mencetak
viewer.close();
}
Konversi PDF ke PostScript
Kelas PdfViewer menyediakan kemampuan untuk mencetak dokumen PDF dan dengan bantuan kelas ini, kita juga dapat mengonversi file PDF ke format PostScript. Untuk mengonversi file PDF menjadi PostScript, pertama-tama pasang printer PS dan cukup cetak ke file dengan bantuan PdfViewer.
Cuplikan kode berikut menunjukkan cara mencetak dan mengonversi PDF ke format PostScript.
public static void PrintingPDFToPostScript() {
// Buat objek PdfViewer
PdfViewer viewer = new PdfViewer();
// Buka file PDF input
viewer.bindPdf(_dataDir + "sample.pdf");
// Atur atribut untuk pencetakan
viewer.setAutoResize(true); // Cetak file dengan ukuran yang disesuaikan
viewer.setAutoRotate(true); // Cetak file dengan rotasi yang disesuaikan
viewer.setPrintAsGrayscale(true);
// Buat objek untuk pengaturan printer dan halaman dan PrintDocument
PdfPrinterSettings printerSettings = new PdfPrinterSettings();
PrintPageSettings pageSettings = new PrintPageSettings();
// Atur Printer PostScript
printerSettings.setPrinterName("HP Universal Printing PS (v7.0.0)");
printerSettings.setPrintToFile(true);
printerSettings.setPrintFileName(_dataDir+"result.ps");
// Atur UkuranHalaman (jika diperlukan)
pageSettings.setPaperSize(new PrintPaperSize("A4", 827, 1169));
// Atur MarginHalaman (jika diperlukan)
pageSettings.setMargins(new PrinterMargins(0, 0, 0, 0));
// Cetak dokumen menggunakan pengaturan printer dan halaman
viewer.printDocumentWithSettings(pageSettings, printerSettings);
// Tutup file PDF setelah mencetak
viewer.close();
}
Memeriksa Status Pekerjaan Cetak
File PDF dapat dicetak ke printer fisik maupun ke Microsoft XPS Document Writer, tanpa menampilkan dialog cetak, menggunakan kelas PdfViewer. Saat mencetak file PDF berukuran besar, prosesnya mungkin memakan waktu lama sehingga pengguna mungkin tidak yakin apakah proses pencetakan selesai atau mengalami masalah. Untuk menentukan status pekerjaan cetak, gunakan properti PrintStatus. Cuplikan kode berikut menunjukkan cara mencetak file PDF ke file XPS dan mendapatkan status pencetakan.
public static void CheckingPrintJobStatus() {
// Membuat objek PdfViewer
PdfViewer viewer = new PdfViewer();
// Membuka file PDF input
viewer.bindPdf(_dataDir + "sample.pdf");
// Mengatur atribut untuk pencetakan
viewer.setAutoResize(true); // Cetak file dengan ukuran yang disesuaikan
viewer.setAutoRotate(true); // Cetak file dengan rotasi yang disesuaikan
viewer.setPrintAsGrayscale(true);
// Membuat objek untuk pengaturan printer dan halaman serta PrintDocument
PdfPrinterSettings printerSettings = new PdfPrinterSettings();
PrintPageSettings pageSettings = new PrintPageSettings();
// Mengatur printer Microsoft Soft Printer
printerSettings.setPrinterName("HP Universal Printing PS (v7.0.0)");
// Mengatur PageSize (jika diperlukan)
pageSettings.setPaperSize(new PrintPaperSize("A4", 827, 1169));
// Mengatur PageMargins (jika diperlukan)
pageSettings.setMargins(new PrinterMargins(0, 0, 0, 0));
// Mencetak dokumen menggunakan pengaturan printer dan halaman
viewer.printDocumentWithSettings(pageSettings, printerSettings);
// // Memeriksa status cetak
if (viewer.getPrintStatus() != null) {
Exception ex = (Exception) viewer.getPrintStatus();
System.out.println(ex.getMessage());
} else {
// Tidak ada kesalahan yang ditemukan. Pekerjaan cetak telah berhasil diselesaikan
System.out.println("Semuanya berjalan dengan baik!");
}
// Menutup file PDF setelah pencetakan
viewer.close();
}