PDF 打印边距快速调整

从论文库下载的论文,想打印成小册子随时翻阅,很多论文页边距很小,去打印店调整,可能加收版面调整费。
调整页边距实际上就是调整页面布局尺寸和页边留白。

步骤

示例论文原格式边距很窄,不利于打印装订

示例

打开 PDF 处理工具,–> “批量修改文档”,直接拖入文档

01

–> “设置 PDF 文件的修改方式”

02

–> “指定页面布局及尺寸”

03

–> “调整页边留白”,输入合适的上下左右数值

04

最后,点击“生成目标文件”。
调整后效果
在这里插入图片描述

文中小程序

相关扩展阅读

本文属于作者原创,转载请注明出处。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要使用Java根据PDF流调用打印打印,可以使用以下步骤: 1. 导入所需的Java库和依赖项,包括iText库(用于读取PDF文件)和Java Print Service(JPS)库(用于打印)。 2. 读取PDF文件并将其转换为InputStream或ByteArrayInputStream对象。 ``` File file = new File("example.pdf"); InputStream inputStream = new FileInputStream(file); ``` 3. 创建一个PrinterJob对象,该对象允许您选择打印机和打印参数,并且可以将打印作业提交给打印机。 ``` PrinterJob printerJob = PrinterJob.getPrinterJob(); ``` 4. 获取所选打印机并设置打印参数,例如纸张大小和边距。 ``` PrintService printService = PrintServiceLookup.lookupDefaultPrintService(); printerJob.setPrintService(printService); PageFormat pageFormat = printerJob.defaultPage(); Paper paper = pageFormat.getPaper(); paper.setSize(595, 842); // A4 paper size paper.setImageableArea(0, 0, 595, 842); // full page printable area pageFormat.setPaper(paper); printerJob.setPrintable(null, pageFormat); ``` 5. 创建一个PDF打印器,该打印器将使用iText库读取PDF文件并将其传递给打印机。 ``` PDFPrint pdfPrint = new PDFPrint(inputStream); printerJob.setPageable(pdfPrint); ``` 6. 执行打印作业。 ``` printerJob.print(); ``` 完整的Java代码示例如下: ``` import java.awt.print.PrinterJob; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import javax.print.PrintService; import javax.print.PrintServiceLookup; import javax.print.attribute.HashPrintRequestAttributeSet; import javax.print.attribute.PrintRequestAttributeSet; import javax.print.attribute.standard.MediaSize; import javax.print.attribute.standard.MediaSizeName; import javax.print.attribute.standard.OrientationRequested; import javax.print.attribute.standard.PrintQuality; import javax.print.attribute.standard.Sides; import com.itextpdf.text.pdf.PdfReader; import com.itextpdf.text.pdf.SimpleBookmark; import com.itextpdf.text.pdf.SimpleNamedDestination; public class PrintPDFExample { public static void main(String[] args) throws Exception { File file = new File("example.pdf"); InputStream inputStream = new FileInputStream(file); PrinterJob printerJob = PrinterJob.getPrinterJob(); PrintService printService = PrintServiceLookup.lookupDefaultPrintService(); printerJob.setPrintService(printService); PageFormat pageFormat = printerJob.defaultPage(); Paper paper = pageFormat.getPaper(); paper.setSize(595, 842); // A4 paper size paper.setImageableArea(0, 0, 595, 842); // full page printable area pageFormat.setPaper(paper); PDFPrint pdfPrint = new PDFPrint(inputStream); printerJob.setPageable(pdfPrint); printerJob.print(); } static class PDFPrint implements Pageable { private PdfReader pdfReader; public PDFPrint(InputStream inputStream) throws Exception { pdfReader = new PdfReader(inputStream); } public int getNumberOfPages() { return pdfReader.getNumberOfPages(); } public PageFormat getPageFormat(int pageIndex) { PageFormat page ### 回答2: 在Java中,可以使用PDF流调用打印机进行打印。要实现这个功能,你可以采用以下步骤: 1. 导入相关的Java库(如Apache PDFBox),以便处理PDF文件和操作打印机。 2. 首先,通过输入流或文件路径加载PDF文件。可以使用PDFBox库的PDDocument类来操作PDF文件。 3. 创建打印作业,并设置打印属性。可以使用PrinterJob类来创建和管理打印作业。你可以设置打印机属性,如纸张大小、打印方向等。 4. 将PDF文档转换为打印所需的图像或页面。使用PDFBox库的PDFRenderer类可以将PDF文档转换为图像。你可以通过其getPageCount()方法获取页面数量,并使用renderPage()方法将每一页转换为图像。 5. 遍历每一页的图像,将它们添加到打印作业中。使用Graphics类的drawImage()方法可以将图像绘制到打印画布上。 6. 最后,调用PrinterJob的print()方法来执行打印作业。你可以捕获可能抛出的PrintException并进行错误处理。 需要注意的是,以上步骤只是一个基本的框架,具体实现可能因库的不同而有所差异。在实际开发中,你需要根据你使用的PDF处理库和打印机接口去了解更多细节,并做出适当的调整。 ### 回答3: Java可以使用PDF流来调用打印机进行打印。首先,我们需要通过Java的PDF库获取PDF文件的输入流。然后,我们可以使用Java的打印机库在打印机上创建一个打印作业。 为了实现这个过程,我们可以按照以下步骤进行操作: 1. 导入所需的Java库。我们可以使用iText库或Apache PDFBox库来处理PDF文件,使用javax.print库来处理打印机相关操作。 2. 从PDF文件中获取输入流。我们可以使用库提供的方法从PDF文件中读取内容,并将其存储在输入流中。 3. 创建打印任务。使用javax.print库中的PrintServiceLookup类可以获取可用的打印服务(打印机)。我们可以根据需要选择特定的打印机。 4. 指定打印格式。我们可以使用javax.print库中的DocFlavor类来指定所需的打印格式,例如PDF或普通文本。 5. 创建打印作业。使用javax.print库中的PrintService类的createPrintJob()方法,我们可以创建一个打印作业,并将打印格式和打印内容传递给该方法。 6. 将PDF输入流传递给打印作业。我们可以使用javax.print库中的Doc类来将PDF输入流传递给打印作业。 7. 启动打印作业。使用打印作业的print()方法,我们可以启动打印作业并将其发送到选定的打印机上进行打印。 通过以下代码示例,我们可以更好地理解上述步骤的实现过程: ```java import javax.print.*; import javax.print.attribute.*; import java.io.*; public class PrintPDF { public static void main(String[] args) { try { // 获取PDF文件输入流 InputStream pdfStream = new FileInputStream("path/to/pdf/file.pdf"); // 获取可用的打印服务(打印机) PrintService printService = PrintServiceLookup.lookupDefaultPrintService(); // 指定打印格式为PDF DocFlavor flavor = DocFlavor.INPUT_STREAM.AUTOSENSE; // 创建打印作业 DocPrintJob printJob = printService.createPrintJob(); // 创建打印内容(PDF输入流) Doc pdfDoc = new SimpleDoc(pdfStream, flavor, null); // 启动打印作业 printJob.print(pdfDoc, null); // 关闭PDF输入流 pdfStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } catch (PrintException e) { e.printStackTrace(); } } } ``` 通过以上步骤,我们可以使用Java根据PDF流调用打印机进行打印。请确保在运行代码之前,替换示例中的PDF文件路径为实际的PDF文件路径。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值