精华内容
下载资源
问答
  • 如何分割pdf页面
    千次阅读
    2022-02-11 16:20:58

    itextpdf依赖

            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itextpdf</artifactId>
                <version>5.5.13.2</version>
            </dependency>

    代码实现,  我这里是直接输出到response的响应流了,给前端页面分页查看pdf用,如果分割成多个pdf文件,可以输出到自己的FileOutputStream

    PdfReader reader = null;
            PdfWriter writer = null;
            //获取文件输入流
            FileInputStream is = null;
            try (
                    //获取响应输出流
                    ServletOutputStream os = response.getOutputStream()
            ) {
                //截取文件名称
                String fileName = path.substring(path.lastIndexOf("\\"));
                //文件下载
                response.setHeader("content-disposition",
                        "attachment;fileName=" + new String(fileName.getBytes("gb2312"), StandardCharsets.ISO_8859_1));
    
                // 页码为0 下载整个文件
                if (pageNum == 0) {
                    is = new FileInputStream(tbSysParamsMapper.selectById("FILEPATH").getValue() + "\\" + path);
                    IoUtil.copy(is, os);
                } else {
    
                    reader = new PdfReader(tbSysParamsMapper.selectById("FILEPATH").getValue() + "\\" + path);
    
                    //总页数
                    int pageCount = reader.getNumberOfPages();
                    if (pageNum > pageCount) {
                        throw new MyException(RespCodeEnum.NOT_HAVE_PAGES);
                    }
    
                    Document dd = new Document(reader.getPageSize(pageNum));
                    writer = PdfWriter.getInstance(dd, os);
                    dd.open();
                    PdfContentByte cb = writer.getDirectContent();
                    dd.newPage();
                    cb.addTemplate(writer.getImportedPage(reader, pageNum), 0, 0);
                    dd.close();
                    writer.close();
                }
            } catch (IOException | DocumentException e) {
                e.printStackTrace();
            } finally {
                if (reader != null) {
                    reader.close();
                }
                if (writer != null) {
                    writer.close();
                }
                if (is != null) {
                    try {
                        is.close();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }
            }

    更多相关内容
  • pdf分割的小工具,把pdf文件按照自己喜欢的页面进行分割处理。把一份大的pdf文件截取自己想要的部分。pdf精准拆分使用。
  • PDF分割剪切器是一款Windows系统下的PDF页面分割和裁剪软件工具,它支持多种自定义的PDF页面删减分割操作。您可以利用PDF分割剪切器轻松的删除不需要的PDF页面,也可以快速性删除奇数
  • PDF分割剪切器不光可以简单的删除PDF页面,也可以分割PDF文件。它支持一键将PDF文件的每一页分割成单独的PDF文件,也可以通过设置PDF分割页面范围,来按您设定的页面范围分割,例如每3页或者每5页分割成一个PDF文件...
  •   如今网上大部分电子文档数据都是PDF,如何对PDF进行有效的编辑,能够非常有效的提高工作效率,本文介绍采用开源库来自定义分割PDF,亲测可用: # encoding:utf-8 from PyPDF2 import PdfFileReader, PdfFile...

    1.PyPDF2库

      如今网上大部分电子文档数据都是PDF,如何对PDF进行有效的编辑,能够非常有效的提高工作效率,本文介绍采用开源库来自定义分割PDF,亲测可用:

    # encoding:utf-8
    from PyPDF2 import PdfFileReader, PdfFileWriter
    def splitPdf():
        readFile = 'C:/Users/ajz/Desktop/代琼/2.健力多汤臣倍健氨糖硫酸软骨素钙片48片_已签章.pdf';
        outFile = 'C:/Users/ajz/Desktop/copy.pdf';
        pdfFileWriter = PdfFileWriter();
    
        # 获取 PdfFileReader 对象
        pdfFileReader = PdfFileReader(readFile);  # 或者这个方式:pdfFileReader = PdfFileReader(open(readFile, 'rb'));
        # 文档总页数
        numPages = pdfFileReader.getNumPages();
    
        if numPages > 5:
            # 从第五页之后的页面,输出到一个新的文件中,即分割文档
            for index in range(5, numPages):
                pageObj = pdfFileReader.getPage(index)
                pdfFileWriter.addPage(pageObj)
    
            # 添加完每页,再一起保存至文件中
            pdfFileWriter.write(open(outFile, 'wb'))
    
    import os
    def split(pdf_file, delta, output_dir):
        if not os.path.exists(output_dir):
            os.makedirs(output_dir)
        if not os.path.exists(pdf_file):
            return
    
        print('----------参数信息---------------')
        print('File:' + pdf_file)
        print('PageNums:' + str(delta))
        print('Dest:' + output_dir)
        print('-----------pdf开始切分-----------')
        file_name = pdf_file.split('/')[-1].split('.')[0]
        output_dir = os.path.join(output_dir, file_name)
        if not os.path.exists(output_dir):
            os.mkdir(output_dir)
    
        input_stream = open(pdf_file, 'rb')
        pdf_input = PdfFileReader(input_stream)
        page_count = pdf_input.getNumPages()
        sum_page_count = int(page_count / (delta * 1.0))
        remind_page = page_count % delta
        for i in range(0, sum_page_count + 1):
            start = i * delta
            end = (i + 1) * delta
            pdf_out = PdfFileWriter()
            file_path = os.path.join(output_dir, os.path.split(pdf_file)[1])
            if i < sum_page_count:
                full_file_name = file_name + str(start + 1) + '-' + str(end) + ".pdf"
                file_path = os.path.join(output_dir, full_file_name)
                print(full_file_name + '切分完成')
                for j in range(start, end):
                    page = pdf_input.getPage(j)
                    pdf_out.addPage(page)
            else:
                full_file_name = file_name + str(start + 1) + '-' + str(start + remind_page) + ".pdf"
                file_path = os.path.join(output_dir, full_file_name)
                print(full_file_name + '切分完成')
                for j in range(delta * (sum_page_count), page_count):
                    page = pdf_input.getPage(j)
                    pdf_out.addPage(page)
            out_stream = open(file_path, 'wb')
            pdf_out.write(out_stream)
            out_stream.close()
        input_stream.close()
        print('-----------pdf切分完成-----------')
    
    if __name__ == '__main__':
        readFile = 'C:/Users/ajz/Desktop/广州知了软件有效公司.pdf';
        split(readFile,2,'C:/Users/ajz/Desktop');
    

      合理的脚本代码可以有效的提高工作效率,减少重复劳动。

    2.作者答疑

      如有疑问,敬请留言。

    展开全文
  • 分割PDF文件转换成单页中点击几下。 拆分模式 PDF分割成单个的页面,通过页面范围,由成组的页面或删除某些页面。 通过拆分范围 除某些页面范围为单独的PDF文件。 PDF合并 结合任何PDF文件,包括密码保护的。 ...
  • 用免费工具分割PDF文件。 PDF.co是最近建立的网站,为最终用户提供免费工具。该实用程序可与PDF文件,条形码,在线表格填写和签名以及其他功能一起正常使用。新的扩展名是作为PDF.co的一部分创建的 PDF拆分工具可...
  • pdf批量分割切割软件

    2020-12-17 10:53:37
    pdf批量分割切割软件,很好用的软件,适合大批量分割pdf页面使用
  • PDF页面分割合并软件 破解版 注册机 本人已经测试过,安全卫士可能会把注册机识别成木马。装不装,自己决定。
  • 在综合分析不同页面分割算法和适用条件的基础上, 研究针对垂直型网站的页面分割和信息提取算法。以DOM(document object model)树为基础, 提出页面内容聚集度的概念, 统计获取页面分割标签和样式层叠表映射, 对页面...
  • 当然页可以自定义页面分割, 比如 1-5,6-8 这样就是分割成3个文档,分别是第1页到第5页的内容合并到一个文档、第6页到第8页的内容合并到一个文档。 比如 1&3,3&10 这样就是分割成2个文档,分别是第1页和第3页的内容...
  • 分割PDF-crx插件

    2021-03-28 05:36:30
    •该软件支持分割PDF文件 •分割您的PDF文件 •无限数量的免费PDF文件分割 如何使用此扩展名: -点击软件图标 -选择要拆分的PDF文件和要拆分的页面数, 免责声明:请注意,此扩展程序不是由Google
  • 自己写的 spire.pdf 简单的demo ,有一些基础的使用方法,对刚接触的小伙伴...分割pdf ,包括按总页数,每页分割为一个 pdf文件,由于免费版原因,可以每9页生成一个pdf,或者根据 指定页数 (页) 根据指定页数 分割pdf
  • C# 如何将一个PDF页面分割为两页或多页

    千次阅读 热门讨论 2019-01-19 17:20:58
    除了将PDF文档拆分为多个PDF以外,有时候我们也需要将一个PDF页面分割为2个或多个页面。这篇文章介绍如何使用C#将一个PDF页面横向和纵向地分割为2页或多页。 本文所使用PDF组件:Spire.PDF for .NET(Version 5.1.4...

    除了将PDF文档拆分为多个PDF以外,有时候我们也需要将一个PDF页面分割为2个或多个页面。这篇文章介绍如何使用C#将一个PDF页面横向和纵向地分割为2页或多页。

    本文所使用PDF组件:Spire.PDF for .NET(Version 5.1.4及以上版本)

    使用以下代码前,可通过以下两个地址之一下载Spire.Pdf.dll:

    1. 官网下载

    2. Visual Studio--》工具--》NuGet包管理器--》管理解决方案的NuGet包,在浏览中搜索Spire.PDF for .NET--》直接安装到项目

    原PDF页面如下:

    横向拆分

    using System.Drawing;
    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    
    namespace SplitPDFPage
    {
        class Program
        {
            static void Main(string[] args)
            {
                //加载PDF文档
                PdfDocument pdf = new PdfDocument();
                pdf.LoadFromFile("Sample.pdf");
    
                //获取第一页
                PdfPageBase page = pdf.Pages[0];
    
                //创建一个新的PDF文档
                PdfDocument newPdf = new PdfDocument();
    
                //移除新建PDF文档的页边距
                newPdf.PageSettings.Margins.All = 0;
    
                //设置新建PDF文档的页面宽度等于原PDF文档第一页的页面宽度,高度等于原PDF文档第一页的页面高度的一半
                newPdf.PageSettings.Width = page.Size.Width;
                newPdf.PageSettings.Height = page.Size.Height / 2;
    
                //添加一个新页面到新建PDF文档
                PdfPageBase newPage = newPdf.Pages.Add();
    
                //页面内容写满之后自动分页
                PdfTextLayout format = new PdfTextLayout();
                format.Break = PdfLayoutBreakType.FitPage;
                format.Layout = PdfLayoutType.Paginate;
    
                //将原PDF文档的第一页的内容画到新建PDF的页面上
                page.CreateTemplate().Draw(newPage, new PointF(0, 0), format);
    
                //保存文档
                newPdf.SaveToFile("HorizontallySplit.pdf");
    
                //关闭
                newPdf.Close();
                pdf.Close();
            }
        }
    }

    横向拆分为2页效果:

    纵向拆分

    using System.Drawing;
    using Spire.Pdf;
    using Spire.Pdf.Graphics;
    
    namespace SplitPDFPage
    {
        class Program
        {
            static void Main(string[] args)
            {
                //加载PDF文档
                PdfDocument pdf = new PdfDocument();
                pdf.LoadFromFile("Sample.pdf");
    
                //获取第一页
                PdfPageBase page = pdf.Pages[0];
    
                //创建一个新的PDF文档
                PdfDocument newPdf = new PdfDocument();
    
                //移除新建PDF文档的页边距
                newPdf.PageSettings.Margins.All = 0;
    
                //设置新建PDF文档的页面宽度等于原PDF文档第一页的页面宽度的一半,高度等于原PDF文档第一页的页面高度
                newPdf.PageSettings.Width = page.Size.Width / 2;
                newPdf.PageSettings.Height = page.Size.Height;
    
                //添加一个新页面到新建PDF文档
                PdfPageBase newPage = newPdf.Pages.Add();
    
                //页面内容写满之后自动分页
                PdfTextLayout format = new PdfTextLayout();
                format.Break = PdfLayoutBreakType.FitPage;
                format.Layout = PdfLayoutType.Paginate;
    
                //将原PDF文档第一页的内容画到新建PDF文档的页面上
                page.CreateTemplate().Draw(newPage, new PointF(0, 0), format);
    
                //保存文档
                newPdf.SaveToFile("VerticallySplit.pdf");
    
                //关闭
                newPdf.Close();
                pdf.Close();         
            }
        }
    }

    纵向拆分为2页的效果:

    以上代码只将PDF页面拆分为了2页,如果需要拆分为多页,例如横向拆分为4页,将新建PDF的页面高度设置为原页面高度的1/4即可。

    展开全文
  • pdf分割

    2021-03-04 03:21:14
    一个简单的Python脚本,可让您打开PDF并将PDF页面拆分为自己的PDF文件。 PDF文件将与main.py文件位于同一目录中 依存关系 您将需要安装以下依赖项 pip3 install pypdf2 pip3 install pathvalidate 运行代码 通过键入...
  • PDF权限、页面操作

    2018-09-05 16:39:13
    该工具支持将几张图片拼接为PDF,也支持PDF中加水印,也支持将PDF文件修改为不可复制、不可打印等权限设置,也支持对PDF页面的大小进行修改(宽高)
  • python分割PDF

    2019-06-14 09:47:00
    /usr/bin/env python# coding=utf-8from PyPDF2 import PdfFileReader, PdfFileWriter# PDF文件分割def split_pdf(read_file, out_detail): try: fp_read_file = open(read_file, 'rb') pdf_input = ...
    #!/usr/bin/env python
    # coding=utf-8

    from PyPDF2 import PdfFileReader, PdfFileWriter


    # PDF文件分割
    def split_pdf(read_file, out_detail):
    try:
    fp_read_file = open(read_file, 'rb')
    pdf_input = PdfFileReader(fp_read_file) # 将要分割的PDF内容格式话
    page_count = pdf_input.getNumPages() # 获取PDF页数
    print(page_count) # 打印页数

    with open(out_detail, 'r',True,'utf-8')as fp:
    # print(fp)
    txt = fp.readlines()
    # print(txt)
    for detail in txt: # 打开分割标准文件
    # print(type(detail))
    pages, write_file = detail.split() # 空格分组
    # write_file, write_ext = os.path.splitext(write_file) # 用于返回文件名和扩展名元组
    pdf_file = f'{write_file}.pdf'
    # liststr=list(map(int, pages.split('-')))
    # print(type(liststr))
    start_page, end_page = list(map(int, pages.split('-'))) # 将字符串数组转换成整形数组
    start_page -= 1
    try:
    print(f'开始分割{start_page}页-{end_page}页,保存为{pdf_file}......')
    pdf_output = PdfFileWriter() # 实例一个 PDF文件编写器
    for i in range(start_page, end_page):
    pdf_output.addPage(pdf_input.getPage(i))
    with open(pdf_file, 'wb') as sub_fp:
    pdf_output.write(sub_fp)
    print(f'完成分割{start_page}页-{end_page}页,保存为{pdf_file}!')
    except IndexError:
    print(f'分割页数超过了PDF的页数')
    # fp.close()
    except Exception as e:
    print(e)
    finally:
    fp_read_file.close()



    # def main():
    # fire.Fire(split_pdf)
    #
    # if __name__ == '__main__':
    # main()

    split_pdf('建龙微纳_银行流水_中国工商银行_2018_112页.pdf', '10_20_50.txt')

     

    
    

    转载于:https://www.cnblogs.com/sunmoon1993/p/11021758.html

    展开全文
  • PDF提取器 一个简单的Java应用程序根据输入的页码分割PDF。 它从仅具有给定页面列表的给定PDF创建新的PDF。 页面范围也受支持。 新创建的PDF按照输入页面的顺序从原始文件中提取页面
  • 经常会有小伙伴问我,如何将多页面PDF文件拆分成一个个的PDF文件?例如有5个页面PDF文件,一次性拆分导出生成5个单页面PDF文件?...今天为大家详细介绍如何将多页面pdf分割成一页一页的PDF文件。...
  • 它提供可视分割标记编辑器(垂直或水平分割线),以方便分割PDF页面。 典型使用案例 假设你有一个样本文件,由一些扫描的材料组成,不幸的是,两页的内容被扫描到一页上面,然后你想把每页横向或纵向分割成两个单独的...
  • Adobe Acrobat Pro DC拆分PDF

    千次阅读 2022-03-13 16:37:16
    把页数较多的PDF文档拆分成多个页数少的PDF文档
  • 对于PDF页面提取,我们的开发思路是这样子的。我们设计一个表单,让用户上传一个PDF文件并输入提取页面号码。服务器在收到PDF文件后使用PyPDF2读取用户上传的PDF文件,提取我们所需要的页面,然后通过FileResponse将...
  • pdf.addImage(img, 'JPEG', x, position, imgWidth, imgHeight);img是base64图片变量也可以是图片路径。x是代表记录x的位置position 是图片上移或者下移多少像素。如果是负数则是往上移动。imgWidth 原始宽度。...
  • 在弹出的打印窗口点击左侧“目标”中的“更改”按钮,在弹出的对话框中选择“本地目标”中的“另存为PDF”命令。 返回到打印窗口后直接点击“保存”按钮,在弹出的对话框里面设置文档的保存位置、保存的页面,再点击...
  • 如何将PDF的单页页面分割成多个页面,如何将PDF页面的四周空白部分裁剪掉 有些pdf文档的单个页面的内容需要提取其中一部分,有些pdf文档页面四周空白部分非 常多,那怎样编辑pdf文件,把pdf的一个页面竖直或水平拆...
  • 改进的基于python3.7开发的pdf分割合并工具,增加了水印密码功能,可以对页面进行旋转,可以单页分割pdf,或者按指定页码范围分割,可以合并多个pdf的多个页码范围, 也可以合并某个文件夹下的所有pdf。用pyinstall...
  • PDFBox分割PDF文档

    2021-03-11 12:57:43
    本篇文章帮大家学习PDFBox分割PDF文档,包含了PDFBox分割PDF文档使用方法、操作技巧、实例演示和...分割PDF文档中的页面可以使用Splitter类将给定的PDF文档分割为多个PDF文档。 该类用于将给定的PDF文档分成几个其他...
  • PDF Arranger 是一款免费的 PDF 分割、合并、旋转、裁剪、重新排列工具,界面直观,简单易用。 源码 https://github.com/pdfarranger/pdfarranger 特性 一个用于调整 PDF 页面(删除特定页、顺序重排、复制页面…)...
  • PDF文件相信大家现在都有接触过,我们知道PDF文件可以在PDF阅读器中打开,但只是可以临时编辑,不能保存,每次使用需要从新编辑,这样很麻烦,有很多小...那么PDF文件的编辑技巧有什么呢,今天小编就以PDF页面的分...
  • 由于不支持中文,所以大家都是先把页面用画布canvas转成图片,将这张图片插到pdf实例中,再生成pdf,这样生成出来的pdf你会发现,里面只有一张图片,所以jspdf分页时就是对这张图片的分割,会把文字、图片切割开,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,198
精华内容 4,879
关键字:

如何分割pdf页面