跳到内容
  • 福昕首页
  • 开发中心
  • SDK文档资料
  • 插件商店
  • 福昕首页
  • 开发中心
  • SDK文档资料
  • 插件商店
申请试用
  • 企业自动化
    • Compressor
  • 福昕CloudAPI
  • 福昕PDF SDK 软件开发工具包
    • 福昕PDF SDK(ActiveX)
    • 福昕PDF SDK(桌面/服务器)
    • 福昕PDF SDK(Plug-in)
    • 福昕 PDF SDK(安卓)
    • 福昕PDF SDK(iOS)
    • 福昕PDF SDK(Web)
  • 福昕管理控制台
    • 公有云
    • 私有云
    • 通用情况
  • 福昕阅读器
    • RMS插件
  • 福昕高级编辑器
    • AI助手
    • Mac版本
      • 常规问题
    • Windows版本
      • ECM集成
      • 互联PDF
      • 企业管理指南
      • 保护
      • 内容编辑
      • 创建PDF
      • 压缩
      • 图章
      • 安装与卸载
      • 常见问题
      • 打印
      • 注释/评论
      • 福昕插件
      • 翻译助手
      • 翻译助手教程
      • 试用与激活
      • 转换
      • 页面管理
    • 教育用户
      • 论文查重
      • 论文畅
      • 操作指南
    • 网页版
      • Foxit eSign
      • 电子签章
    • 订阅
    • 资源
  • 福昕高级编辑器Linux版本
  • 福船图纸管理系统
  • 福昕PDF SDK 软件开发工具包 > 福昕PDF SDK(桌面/服务器)
  • 标签:
  • PDF转TXT,pdf转纯文本,wps,导出文字,漏字

PDF转TXT:为什么Foxit SDK导出的文字比WPS少?

  • 福昕知识库
  • 2025-03-12

原因分析:
WPS在进行PDF转纯文本时,会导出文档中的所有文字,包括页面显示区域以外的文字。而Foxit PDF SDK默认只导出页面显示区域内的文字。因此,在某些情况下,Foxit SDK导出的文字可能会比WPS少。

什么是页面显示区域外的文字?
举例来说,假设有一个PDF文件,打开后第一页的显示效果如下:

但当我们使用福昕编辑器的“编辑 -> 内容编辑 -> 选择文本”功能,然后按下Ctrl+A,会发现左侧页面显示区域外还有很多文字。实际上,显示的区域只有左半部分,因此Foxit PDF SDK默认只会导出左半部分的文本。

解决方案:
如果有特殊场景需要导出所有文字(包括显示区域外的文字),该如何处理?

注意: 我们通常不建议这样做,因为PDF的呈现效果是按照文档作者的意愿设计的,原本不可见的文本内容不建议违背作者的设计初衷去导出。如下是一个C#代码示例:通过修改显示区域,再使用pdf2txt接口,即可实现与WPS相同的效果。

static String pdf2text_0307(PDFDoc doc)
   {
       String data = "";
       // 创建一个StreamWriter对象,指定编码(例如UTF8)
       StreamWriter writer = new StreamWriter(memoryStream, Encoding.UTF8);


       for (int i = 0; i < doc.GetPageCount(); i++)
       {
           using (PDFPage original_page = doc.GetPage(i))
           {
               
               original_page.StartParse((int)PDFPage.ParseFlags.e_ParsePageNormal, null, false);

               RectF rect= original_page.CalcContentBBox(PDFPage.CalcMarginMode.e_CalcContentsBox);
               //如果需要输出页面以外的文本
               bool isOutputOffPageText = true;
               if(isOutputOffPageText)
               {
                   float w = rect.Width();
		   //调整了页面显示区域,让原本的pdf2txt可以将显示区域外的文本也输出出来。
                   for (int k = 0; k < 4; k++)
                   {
                       RectF rectf = original_page.GetBox((PDFPage.BoxType)k);
                       rect.Union(rectf);

                   }
                   w = rect.Width();
                   for (int k = 0; k < 4; k++)
                   {
                       original_page.SetBox((PDFPage.BoxType)k, rect);

                   }
                   original_page.Normalize();
               }
               using (TextPage textPage=new TextPage(original_page,(int)TextPage.TextParseFlags.e_ParseTextUseStreamOrder))
               {
                   data=data+ textPage.GetText(TextPage.TextOrderFlag.e_TextStreamOrder)+"\r\n";
               }
           }
       }
      
       return data;

   }
   

相关内容

RDK Android 如何设置单页上下滑动翻页?

PDF转Word时,如何仅处理指定页面?

PDF和OFD如何批量互转?

Bitmap 类如何与其他的图像类互转?

打印管理PrintManager怎么判断文档打印是否完成?

软件如何打开嵌入在office文档中Adobe PDF图标

福昕高级PDF编辑器专业版如何在文档中嵌入一个3D模型

福昕高级PDF编辑器专业版如何实现对图片和文档内容添加马赛克

福昕高级PDF编辑器如何显示注释内容图标

福昕高级PDF编辑器如何添加和调整快速访问工具栏功能

推荐内容

RDK Android 如何设置单页上下滑动翻页?

PDF转Word时,如何仅处理指定页面?

PDF和OFD如何批量互转?

Bitmap 类如何与其他的图像类互转?

打印管理PrintManager怎么判断文档打印是否完成?

软件如何打开嵌入在office文档中Adobe PDF图标

福昕高级PDF编辑器专业版如何在文档中嵌入一个3D模型

福昕高级PDF编辑器专业版如何实现对图片和文档内容添加马赛克

福昕高级PDF编辑器如何显示注释内容图标

福昕高级PDF编辑器如何添加和调整快速访问工具栏功能

产品
  • 应用行业
  • 白皮书
开发支持
  • 开发中心
  • SDK文档资料

销售咨询:010-50951668

客服电话:0591-38509808

销售咨询
微信公众号

©2026 福建福昕软件开发股份有限公司 版权所有

隐私策略