| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 322 人关注过本帖
标题:NetPdfTool V1.03
只看楼主 加入收藏
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:447
专家分:582
注 册:2013-5-14
结帖率:3.33%
收藏
已结贴  问题点数:20 回复次数:5 
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编辑过]

搜索更多相关主题的帖子: 文件名 文件 路径 出错 PDF 
2024-07-26 13:24
seasoners
Rank: 2
等 级:论坛游民
帖 子:52
专家分:19
注 册:2013-12-15
收藏
得分:10 
下载的源码呢?
2024-07-30 21:20
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:10 
学习啦,谢谢!
2024-07-31 06:23
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:447
专家分:582
注 册:2013-5-14
收藏
得分:0 
20个功能做发行第一版
图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2024-7-31 23:44编辑过]

2024-07-31 15:40
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1730
专家分:3324
注 册:2012-2-29
收藏
得分:0 
回复 4楼 iswith
可以分享吗?谢谢!
2024-08-01 09:58
iswith
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:5
帖 子:447
专家分:582
注 册:2013-5-14
收藏
得分:0 
NetPDFTools.zip (21.51 KB)

全包资源请在csdn下载
https://download.

[此贴子已经被作者于2024-8-1 19:37编辑过]

2024-08-01 17:51
快速回复:NetPdfTool V1.03
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030091 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved