NetPdfTool V1.03
*--test_netpdftools DEMO Build 2024 07 31*Word docx 文件
*Word 2021、Word 2019、Word 2016、Word 2013、Word 2010 和 Office Word 2007 的默认基于 XML 的文件格式。
*Excel Xlsx 文件
*Excel 2021、Excel 2019、Excel 2016、Excel 2013、Excel 2010 和 Office Excel 2007 的默认基于 XML 的文件格式。
*如果你对doc,xls格式的文件情有独钟,请运行VBA另存为对应的docx,xlsx格式
Clear
public cPath
If Type( "_vfp.ActiveProject" ) == "O" Then
m.cPath = justPath( _vfp.ActiveProject.Name )
Else
m.cPath = Justpath( Sys(16) )
Endif
Set Default To ( m.cPath )
If !File( "netpdftools.vcx" ) And !File( "netpdftools.vct" ) Then
?"没找到“netpdftools.vcx”可视类库"
Endif
Set Classlib To netpdftools.vcx
Public oNetPdfTools
oNetPdfTools = Createobject( "NetPdfTools" )
*--初始化PdfTools-----------------------------------------------------------------------------------------------------------
If !oNetPdfTools.PdfToolsInit() Then
?"初始化PdfTools失败"
Return .F.
Endif
Local lcPdfFileName ;
, lctoFilename ;
, lnFormat ;
, lcErrorMsg ;
, llReturn ;
, lnReturn ;
, loReturn ;
, lnHsTimes
*选择运行区域时用,若需要全部运行,注释下一行
Return
*1.------------------------------------------------------------------------------------------------------------------------
*将PDF2Linearized(线性化)
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\_6YB1DX1V4.PDF"
m.lctoFilename = Addbs( m.cPath ) + "testdata\_6YB1DX1V4.PDF"
m.lcErrorMsg = ""
?"1.PDF2Linearized(线性化)-> "
m.llReturn = oNetPdfTools.PDF2Linearized( m.lcPdfFileName , @lcErrorMsg , m.lctoFilename )
??Iif( m.llReturn , "转换成功到:" + m.lctoFilename , "转换失败,原因:" + m.lcErrorMsg )
*2.------------------------------------------------------------------------------------------------------------------------
*将单个PDF文件压缩
*CompressPdf( *pdffilename 必传 被压缩的PDF文件 路径+文件名.PDF
*toFilename 必传 压缩去向 路径+文件名.PDF
*ErrorMsg 非必传 不传就会在出时弹出错误对话框
*nImageQuality 非必传 默认=1 图片质量(0=High;1=Low;2=Medium)
*isUnembedFonts 非必传 默认=false 是否不嵌入字体,看情况某些PDF用了特殊字体时设置 =true即嵌入字体;
)
*--返回值:L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
Local lnImageQuality ;
, llUnembedFonts
m.lcErrorMsg = "" &&不传地址变量参数时,出错会弹出出错对话框。
m.lnImageQuality = 0 &&0=High;1=Low;2=Medium
m.lisUnembedFonts= .T. &&不嵌入字体,看情况某些PDF用了特殊字体时设置为.F.
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\MergePdf.PDF"
m.lctoFilename = Addbs( m.cPath ) + "testdata\MergePdf_Compresstest.PDF"
?"2.PDF文件压缩:CompressPdf-> "
m.lnHsTimes = Seconds()
m.llReturn = ( m.lcPdfFileName ;
, m.lctoFilename ;
, @lcErrorMsg ;
, m.lnImageQuality;
, m.lisUnembedFonts )
??Iif( m.llReturn , "转换成功到:" + m.lctoFilename , "转换失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*3.------------------------------------------------------------------------------------------------------------------------
*将目录下的全部PDF文件进行压缩,并发多线程执行,执行是的进度由类“OnProgress”自动捕捉出现进度显示
?"3.目录下全部PDF文件压缩:CompressPdfAllAsync"
*( Sys(2015 ) , "E:\NetPDFTools\testdata" )
*4.------------------------------------------------------------------------------------------------------------------------
*将PDF2Excel(Xlsx)
*PDF2Excel( * PdfFileName 必传 来源PDF文件(路径+文件名.Pdf)
* ToFilename 必传 去向Xlsx文件(路径+文件名.Xlsx)
* ErrorMsg 非必传 不传就会在出时弹出错误对话框
* StartIndex 非必传 从第几页开始(暂不支持)
* EndIndex 非必传 到第几页结束(暂不支持);
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\test6.PDF"
m.lctoFilename = Addbs( m.cPath ) + "testdata\test6.XLSX"
m.lcErrorMsg = ""
?"4.PDF2Excel(Xlsx)-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.PDF2Excel( m.lcPdfFileName , m.lctoFilename , @lcErrorMsg )
??Iif( m.llReturn , "转换成功到:" + m.lctoFilename , "转换失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*5.------------------------------------------------------------------------------------------------------------------------
*将PDF2Word(Docx)
*PDF2Word ( * PdfFileName 必传 来源PDF文件 (路径+文件名.Pdf)
* ToFilename 必传 去向Docx文件(路径+文件名.Docx)
* ErrorMsg 非必传 不传就会在出时弹出错误对话框
* StartIndex 非必传 从第几页开始(暂不支持)
* EndIndex 非必传 到第几页结束(暂不支持);
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\test.PDF"
m.lctoFilename = Addbs( m.cPath ) + "testdata\test.Docx"
m.lcErrorMsg = ""
?"5.PDF2Word(Docx)-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.Pdf2Word( m.lcPdfFileName , m.lctoFilename , @lcErrorMsg )
??Iif( m.llReturn , "转换成功到:" + m.lctoFilename , "转换失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*6.------------------------------------------------------------------------------------------------------------------------
*将PDF转换成需要的格式文件
*PDF2Image( * pdffilename As String 必传参
* toFilename As String 非传参 值=空 -> 即与PDF同名且同目录(页数).扩展名由formats决定;
值=只是路径 -> 取路径+被转换的PDF文件名(页数).扩展名由formats决定;
值=路径+文件名.扩展名 -> 只取 路径 + 文件名 (图片序数).扩展名由formats决定;
* ErrorMsg As String 非必传 不传就会在出错时,弹出错误对话框,传的话就地址返值
* StartIndex As Integer 非必传 StartIndex 与 EndIndex 不传就取全部页,默认值=1(第一页)
* EndIndex As Integer 非必传 结束页,默认=-1取全部
* Format As Integer 非必传 默认=3
*Bmp = 1
*Jpeg = 2
*Png = 3
*Gif = 4
*Tiff = 5
*Wmf = 6
*Emf = 7
* dpi As Integer 非必传 默认=300 dpi ,值越大转换后的图片容量就越大,越小图片质量就越差;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\test.PDF"
m.lnFormat = 2
*!* m.lctoFilename = ""
m.lctoFilename = Addbs( m.cPath ) + "testdata\PDF2Image\"
*!* m.lctoFilename = Addbs( m.cPath ) + "testdata\PDF2Image\123.jpg"
m.lcErrorMsg = ""
m.lnStartIndex = 1
m.lnEndIndex = 2
m.lndpi = 300
?"6.将PDF2Image->"
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.PDF2Image( m.lcPdfFileName , m.lctoFilename , @lcErrorMsg , m.lnStartIndex , m.lnEndIndex , m.lnFormat , m.lndpi )
?Iif( !m.llReturn , "转换失败,原因:" + m.lcErrorMsg , "" )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*7.------------------------------------------------------------------------------------------------------------------------
*多个PDF文档合并
*MergePdfFiles(
*SourceFiles As String 必传 [a.pdf,b.pdf]
*OutputFile As String 必传 合成后的PDF文件: 路径+文件名.扩展名
*ErrorMsg As String 非必传 不传就会在出时弹出错误对话框;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
Local lcSourceFiles ;
, lcOutputFile
m.lcSourceFiles = Addbs( m.cPath ) + "testdata\_6YA1E3JCX.PDF"
m.lcSourceFiles = m.lcSourceFiles+ [,] + Addbs( m.cPath ) + "testdata\_6YB0HU3SA.PDF"
m.lcOutputFile = Addbs( m.cPath ) + "testdata\MergePdf.PDF"
m.lcErrorMsg = ""
?"7.多个PDF文档合并-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.MergePdfFiles( m.lcSourceFiles, m.lcOutputFile, @lcErrorMsg )
?Iif( m.llReturn , "合并成功到:" + m.lcOutputFile, "合并失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*8.------------------------------------------------------------------------------------------------------------------------
*多个Excel文档合并(不需要安装office套件)
*MergeExcelFiles(
*SourceFiles 必传 [a.xls,b.xls]|[a.xlsx,b.xlsx]
*OutputFile 必传 合成后的Excel文件: 路径+文件名.扩展名
*ErrorMsg 非必传 不传就会在出错时弹出错误对话框
*isDeleteFile 非必传 是否删除a.xls,b.xls...这类文件 默认值=false
*isQname 非必传 是否强名 默认值=false;=true 则系统强名为Page1.....n;
)
*返回值 :L
*注意:如果工作区名称为“Sheet”或isQname = true 时SheetName改变为"Page1...N",否则取之前的工作区名称;
但要注意工作区同名,则失败,一个文档不可以同名工作区名称
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
Local lisDeleteFile ;
, lisQname
m.lcSourceFiles = Addbs( m.cPath ) + "testdata\KPI1.xlsx"
m.lcSourceFiles = m.lcSourceFiles+ [,] + Addbs( m.cPath ) + "testdata\KPI2.xlsx"
m.lcOutputFile = Addbs( m.cPath ) + "testdata\MergeExcel_KPI.xlsx"
m.lcErrorMsg = ""
m.lisDeleteFile = .F.
m.lisQname = .T.
?"8.多个Excel文档合并-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.MergeExcelFiles( m.lcSourceFiles, m.lcOutputFile , @lcErrorMsg , m.lisDeleteFile , m.lisQname )
?Iif( m.llReturn , "合并成功到:" + m.lcOutputFile , "合并失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*9.------------------------------------------------------------------------------------------------------------------------
*多个Word文档合并(不需要安装office套件)
*MergeWordFiles(
*SourceFiles 必传 a.docx,b.docx
*OutputFile 必传 打开一个docx文件: 路径+文件名.docx,将SourceFiles的集合文件列表合成在这个文件上.
*ErrorMsg 非必传 不传就会在出错时弹出错误对话框
*isDeleteFile 非必传 是否删除a.xls,b.xls...这类文件 默认值=false;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcSourceFiles = Addbs( m.cPath ) + "testdata\KPI1.docx"
m.lcSourceFiles = m.lcSourceFiles+ [,] + Addbs( m.cPath ) + "testdata\KPI2.docx"
m.lcOutputFile = Addbs( m.cPath ) + "testdata\KPI.docx"
m.lcErrorMsg = ""
m.lisDeleteFile = .F.
?"9.多个Word文档合并-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.MergeWordFiles( m.lcSourceFiles , m.lcOutputFile , @lcErrorMsg , m.lisDeleteFile )
?Iif( m.llReturn , "合并成功到:" + m.lcOutputFile, "合并失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*10.------------------------------------------------------------------------------------------------------------------------
*提取PDF的表格数据到VFP(类“onprogress”事件捕捉,一个表格一个cJson,注意可能有多个cJson)
*ExtractPdfTable( * PdfFileName 必传 来源PDF文件(路径+文件名.Pdf)
* ErrorMsg 非必传 不传就会在出时弹出错误对话框
* StartIndex 非必传 从第几页开始 默认值:=1 第一页
* EndIndex 非必传 到第几页结束 默认值:=-1 全部页;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.PdfFileName = Addbs( m.cPath ) + "testdata\test6.pdf"
m.lcErrorMsg = ""
?"10.提取PDF的表格数据到VFP-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.ExtractPdfTable( m.PdfFileName, @lcErrorMsg )
?Iif( m.llReturn , "成功生成表“ExtractPdfTable”,请自行解析cJson" , "提取PDF表格失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*11.------------------------------------------------------------------------------------------------------------------------
*--获取Excel表格到VFP,“OnProgress”事件捕捉,一个表格一个Json,注意可能有多个Json,祥细查看“OnProgress”说明
*ExtractExcelTable( * ExcelFiles 必传 提取的Excel文件(路径+文件名.Xlsx)
* ErrorMsg 非必传 不传就会在出时弹出错误对话框
* StartIndex 非必传 从第几页开始,默认=1,即第一个工作区
* EndIndex 非必传 到第几页结束,默认=-1,即全部工作区;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcExcelFiles = Addbs( m.cPath ) + "testdata\Book.xlsx" &&Book
m.lcErrorMsg = ""
?"11.提取Excel的表格数据到VFP-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.ExtractExcelTable( m.lcExcelFiles, @lcErrorMsg )
?Iif( m.llReturn , "成功生成表“ExtractExcelTable”,请自行解析cJson" , "提取Excel表格失败,原因:" + m.lcErrorMsg )
*--该行在"OnProgress"事件之后执行
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*12.------------------------------------------------------------------------------------------------------------------------
*提取PDF图片,按什么图片格式导出至什么路径下
*ExtractPdfImage(
* PdfFileName 必传 来源PDF文件(路径+文件名.Pdf)
* toFilename 非传参 值=空 -> 即与PDF同名且同目录(页数).扩展名由formats决定;
值=只是路径 -> 取路径+被转换的PDF文件名(页数).扩展名由formats决定;
值=路径+文件名.扩展名 -> 只取 路径 + 文件名 (图片序数).扩展名由formats决定;
(即时扩展名不会定义但也要写入系统,需要判定目录与文件名区别)
* ErrorMsg 非必传 不传就会在出时弹出错误对话框
* ImageFormat 非必传 图片格式 默认值:=2
*Bmp = 1
*Jpeg = 2
*Png = 3
*Gif = 4
*Tiff = 5
*Wmf = 6
*Emf = 7
* StartIndex 非必传 从第几页开始 默认值:=1 第一页
* EndIndex 非必传 到第几页结束 默认值:=-1 全部页;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\_6YB0H7JV0.PDF"
m.lnFormat = 2
*--与原PDF同级目录同文件名.扩展名(由Format决定),或不传
*!* m.lctoFilename = ""
*--去向目录且重新命名
*!* m.lctoFilename = Addbs( m.cPath ) + "testdata\ExtractPdfImage\123.jpg"
*--去向目录,注意带“\”
m.lctoFilename = Addbs( m.cPath ) + "testdata\ExtractPdfImage\"
m.lcErrorMsg = ""
m.lnStartIndex = 1
m.lnEndIndex = -1
?"12.提取PDF图片,按什么图片格式导出至什么路径下,ExtractPdfImage-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.ExtractPdfImage( m.lcPdfFileName, m.lctoFilename, @lcErrorMsg , m.lnFormat , m.lnStartIndex , m.lnEndIndex )
?Iif( m.llReturn , "" , "提图片失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*13.------------------------------------------------------------------------------------------------------------------------
*提取Word图片,按什么图片格式至什么路径下
*ExtractWordImage(
* WordFiles 必传 来源Word文件(路径+文件名.docx)
* toFilename 非传参 值=空 -> 即与PDF同名且同目录(页数).扩展名由formats决定;
值=只是路径 -> 取路径+被转换的PDF文件名(页数).扩展名由formats决定;
值=路径+文件名.扩展名 -> 只取 路径 + 文件名 (图片序数).扩展名由formats决定;
(即时扩展名不会定义但也要写入系统,需要判定目录与文件名区别)
* ErrorMsg 非必传 不传就会在出时弹出错误对话框
* ImageFormat 非必传 图片格式 默认值:=2
*Bmp = 1
*Jpeg = 2
*Png = 3
*Gif = 4
*Tiff = 5
*Wmf = 6
*Emf = 7;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcWordFiles= Addbs( m.cPath ) + "testdata\wordimage.docx"
m.lnFormat = 2
*--与原PDF同级目录同文件名.扩展名(由Format决定),或不传
*!* m.lctoFilename = ""
*--去向目录且重新命名
*!* m.lctoFilename = Addbs( m.cPath ) + "testdata\ExtractPdfImage\123.jpg"
*--去向目录,注意带“\”
m.lctoFilename = Addbs( m.cPath ) + "testdata\ExtractWordImage\"
m.lcErrorMsg = ""
?"13.提取Word图片,按什么图片格式导出至什么路径下,ExtractWordImage-> "
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.ExtractWordImage( m.lcWordFiles , m.lctoFilename, @lcErrorMsg , m.lnFormat )
?Iif( m.llReturn , "" , "提图片失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*14.------------------------------------------------------------------------------------------------------------------------
*查找word段落/表格中的文字(不需要安装office套件)并将其替换,性能比传统的耗时为:1/20,甚至更快
*WordReplaceText(
* WordFiles 必传 Word文件 (路径+文件名.Docx)
* Findtext 必传 查找的字符
* Replacetext 必传 替换的字符
* ErrorMsg 非必传 不传就会在出时弹出错误对话框;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
Local lcFindtext ;
, lcReplacetext
m.lcWordFiles = Addbs( m.cPath ) + "testdata\KPI.docx"
m.lcFindtext = "测试"
m.lcReplacetext = "NetTools"
m.lcErrorMsg = ""
?"14.Word文字替换:ReplaceWordText>"
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.ReplaceWordText( m.lcWordFiles , m.lcFindtext , m.lcReplacetext , @lcErrorMsg)
??Iif( m.llReturn , "成功" , "失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*15.------------------------------------------------------------------------------------------------------------------------
*--给Word文档添加页眉页脚(不需要安装office套件)
*AddWordHeaderFooter(
* WordFiles As String 必传 word文件(路径+文件.Docx
* firstHeaderText As String 必传 首页眉
* firstFooterText As String 非必传 首页脚,不传与 首页眉 一致
* EvenHeaderText As String 非必传 偶页眉,不传与 首页眉 一致
* EvenFooterText As String 非必传 偶页脚,不传与 首页眉 一致
* OddHeaderText As String 非必传 奇页眉,不传与 首页眉 一致
* OddFooterText As String 非必传 奇页脚,不传与 首页眉 一致
* ErrorMsg As String 非必传 不传就会在出错时弹出错误对话框;
* isFirstPageCount As Bool 非必传 是否首页自动加上页码数格式为(当前页/整页) 默认=false
* isOtherPageCount As Bool 非必传 是否除首页以外自动加上页码脚数格式为(当前页/整页) 默认=false;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
Local lcfirstHeaderText ;
, lcfirstFooterText
m.lcWordFiles = Addbs( m.cPath ) + "testdata\KPI.docx"
m.lcFirstHeaderText = "NetTools For VFP9.0 7423 ZHZ 首页眉"
m.lcFirstFooterText = "NetTools For VFP9.0 7423 ZHZ 首页脚"
m.lcEvenHeaderText = "NetTools For VFP9.0 7423 ZHZ 偶页眉"
m.lcEvenFooterText = "NetTools For VFP9.0 7423 ZHZ 偶页脚"
m.lcOddHeaderText = "NetTools For VFP9.0 7423 ZHZ 奇页眉"
m.lcOddFooterText = "NetTools For VFP9.0 7423 ZHZ 奇页脚"
m.lcErrorMsg = ""
?"15.给Word文档添加页眉页脚:AddWordHeaderFooter->"
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.AddWordHeaderFooter( m.lcWordFiles ;
, m.lcfirstHeaderText ;
, m.lcfirstFooterText ;
, m.lcEvenHeaderText ;
, m.lcEvenFooterText ;
, m.lcOddHeaderText ;
, m.lcOddFooterText )
??Iif( m.llReturn , "成功添加" + m.lcWordFiles , "失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*16.------------------------------------------------------------------------------------------------------------------------
*--删除Word文档页眉页脚(不需要安装office套件)
*DeleteWordHeaderFooter(
* WordFiles As String 必传 word文件(路径+文件.Docx
* ErrorMsg As String 非必传 不传就会在出错时弹出错误对话框;
* isFirst As Bool 非必传 是否不删除首页眉
* isEven As Bool 非必传 是否不删除偶页眉
* isOdd As Bool 非必传 是否不删除奇页眉;
)
*返回值 :L
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcWordFiles = Addbs( m.cPath ) + "testdata\KPI.docx"
m.lcErrorMsg = ""
?"16.删除Word文档页眉页脚:ModifyWordHeaderFooter->"
m.lnHsTimes = Seconds()
m.llReturn = oNetPdfTools.DeleteWordHeaderFooter( m.lcWordFiles , @lcErrorMsg)
??Iif( m.llReturn , "成功" , "失败,原因:" + m.lcErrorMsg )
??"->耗时:" + Transform( Seconds() - m.lnHsTimes)
*17.------------------------------------------------------------------------------------------------
*获取PDF有多少页
*GetPdfPage(
* PdfFileName 必传 来源PDF文件(路径+文件名.Pdf)
* ErrorMsg 非必传 不传就会在出时弹出错误对话框;
)
*返回值 :N
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\_6YB0H7JV0.PDF"
m.lcErrorMsg = ""
?"17.返回PDF页数:GetPdfPage-> "
m.lnReturn = oNetPdfTools.GetPdfPage( m.lcPdfFileName, @lcErrorMsg )
??Iif( Empty( lcErrorMsg ) , m.lnReturn , "返回PDF页数失败,原因:" + m.lcErrorMsg )
*18.----------------------------------------------------------------------------------------------
*获取PDF某页文本
*GetPdfText(
* PdfFileName 必传 来源PDF文件(路径+文件名.Pdf)
* nPage 必传 某页
* ErrorMsg 非必传 不传就会在出时弹出错误对话框;
)
*返回值:C
If "temp" $ Lower( Sys(16) ) Then
Clear
Endif
m.lcPdfFileName = Addbs( m.cPath ) + "testdata\_6YB0H7JV0.PDF"
m.lcErrorMsg = ""
m.lnPage = 1
?"18.返回PDF某页文本:GetPdfText-> "
m.lcReturn = oNetPdfTools.GetPdfText( m.lcPdfFileName, m.lnPage , @lcErrorMsg )
??Iif( Empty( m.lcErrorMsg ) , Left( m.lcReturn , 10 ) + "....." , "返回PDF某页文本,原因:" + m.lcErrorMsg )
[此贴子已经被作者于2024-7-31 15:29编辑过]