【问题标题】:Additional Page Keeps Being Printed To PDF附加页面不断打印为 PDF
【发布时间】:2019-08-27 04:35:59
【问题描述】:

因此,当我运行代码时,PDF 会获得一个额外的空白页。

试图使分页符连续。 试图删除一个字符。

这些删除页眉和页脚,但它们是必需的。

Sub Word_ExportPDF()

Dim i As Long
Dim CurrentFolder As String
Dim FileName As String
Dim myPath As String

myPath = ActiveDocument.FullName
CurrentFolder = ActiveDocument.Path & "\"
FileName = Mid(myPath, InStrRev(myPath, "\") + 1, _
InStrRev(myPath, ".") - InStrRev(myPath, "\") - 1)

With ActiveDocument
For i = 102 To .Sections.Count

    .Sections(i).Range.Select

    ActiveDocument.ExportAsFixedFormat OutputFileName:= _
    CurrentFolder & "Section " & i & ".pdf", _
    ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, 
    OptimizeFor:= _
    wdExportOptimizeForPrint, Range:=wdExportSelection, Item:= _
    wdExportDocumentContent, IncludeDocProps:=False, KeepIRM:=True, _
    CreateBookmarks:=wdExportCreateNoBookmarks, 
    DocStructureTags:=True, _
    BitmapMissingFonts:=True, UseISO19005_1:=False

Next i
End With
End Sub

只需在我的 PDF 末尾创建一个额外的空白页。

【问题讨论】:

    标签: vba pdf ms-word


    【解决方案1】:

    当一个文档有多个部分,并且分节符的类型是“下一页”并且被包括在内时,这将在逻辑上生成一个额外的页面。节的页眉/页脚信息存储在分节符中,因此如果分节符被遗漏(或删除),页眉/页脚信息将随之而来。所以所描述的行为是“预期的”。

    如果没有这些问题,无法直接将文档的一部分保存为 PDF。

    解决方法是将部分内容复制传输到新的空文档,删除分页符,然后将其保存为 PDF。然后可以丢弃该文档而不进行保存。例如:

    Sub SectionToNewDoc()
        Dim i As Long
        Dim CurrentFolder As String
        Dim FileName As String
        Dim myPath As String
        Dim docSource As Word.Document
        Dim docTemp As Word.Document
        Dim rngSource As Word.Range
        Dim rngTarget As Word.Range
    
        Set docSource = ActiveDocument
    
     With docSource
        myPath = .FullName
        CurrentFolder = .Path & "\"FileName = Mid(myPath, InStrRev(myPath, "\") + 1, _
          InStrRev(myPath, ".") - InStrRev(myPath, "\") - 1)
    
        For i = 102 To .Sections.Count
          Set rngSource = .Sections(i).Range
    
          Set docTemp = Documents.Add
          Set rngTarget = docTemp.content
          rngTarget.FormattedText = rngSource.FormattedText
          rngTarget.Collapse wdCollapseEnd
          rngTarget.MoveStart wdCharacter, -1
          rngTarget.Delete
          docTemp.ExportAsFixedFormat OutputFileName:= _
            CurrentFolder & "Section " & i & ".pdf", _
            ExportFormat:=wdExportFormatPDF, OpenAfterExport:=False, OptimizeFor:= _
            wdExportOptimizeForPrint, Range:=wdExportSelection, Item:= _
            wdExportDocumentContent, IncludeDocProps:=False, KeepIRM:=True, _
            CreateBookmarks:=wdExportCreateNoBookmarks, DocStructureTags:=True, _
            BitmapMissingFonts:=True, UseISO19005_1:=False
          docTemp.Close False
        Next
    End With
    End Sub
    

    【讨论】:

    • 太棒了,谢谢。我明天试试这个,然后报告!
    • @Datolite Strange,因为代码中没有任何内容可以关闭代码启动时处于活动状态的文档。我在发布之前做了测试。您是否对我发布的代码进行了任何更改?
    猜你喜欢
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 2011-08-31
    • 2021-09-27
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    相关资源
    最近更新 更多