Добрый день! такая вот фишка. есть файл 500 страниц, в целях экономии бумаги хочу напечатать каждый раздел с двух сторон. Перерыл весь интернет, но решения не нашел
в примере есть 2 раздела. 1-й с 1 по 3 страницу, 2-й с 4 по 5
Добрый день! такая вот фишка. есть файл 500 страниц, в целях экономии бумаги хочу напечатать каждый раздел с двух сторон. Перерыл весь интернет, но решения не нашел
в примере есть 2 раздела. 1-й с 1 по 3 страницу, 2-й с 4 по 5mechanix85
mechanix85, вам нужно изменить тип разрывов раздела 1 вариант: Выделяем весь документ, жмем Разметка страницы>Параметры страницы(маненькая кавдратненькая кнопочка)>Источник бумаги>Начать раздел: С нечетной страницы 2 вариант: 3 заменить один разрыв на разрыв с нечетной страницы, скопировать его (символ раздела), выполнить замену - найти: ^b, заменить на: ^c Заменить все Теперь можно печатать весь документ сплошняком двухсторонней печатью Если разделов немного, то можно вручную печать каждый раздел, указывая его при печати в поле диапазон страниц (s1 - первый раздел, s2- второй)
mechanix85, вам нужно изменить тип разрывов раздела 1 вариант: Выделяем весь документ, жмем Разметка страницы>Параметры страницы(маненькая кавдратненькая кнопочка)>Источник бумаги>Начать раздел: С нечетной страницы 2 вариант: 3 заменить один разрыв на разрыв с нечетной страницы, скопировать его (символ раздела), выполнить замену - найти: ^b, заменить на: ^c Заменить все Теперь можно печатать весь документ сплошняком двухсторонней печатью Если разделов немного, то можно вручную печать каждый раздел, указывая его при печати в поле диапазон страниц (s1 - первый раздел, s2- второй)krosav4ig
да, на файле примере все отлично, а вот с моим мега файлом беда. на печать не отправляется. идет постановка в очередь печати и затем удаляется
да, на файле примере все отлично, а вот с моим мега файлом беда. на печать не отправляется. идет постановка в очередь печати и затем удаляетсяmechanix85
Sub d() Dim ch As Document, s As Section Set ch = ActiveDocument For Each s In ch.Sections I = I + 1 Debug.Print ch.Path & "\" & I & ".pdf" s.Range.Select ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & I & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdPrintSelection, Item:=wdExportDocumentContent, _ IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _ True, UseISO19005_1:=False Next End Sub
[/vba] Он сохраняет разные разделы в отдельные ПДФ файлы - а потом уже распечатайте эти ПДФ.
Ну попробуйте макрос: [vba]
Код
Sub d() Dim ch As Document, s As Section Set ch = ActiveDocument For Each s In ch.Sections I = I + 1 Debug.Print ch.Path & "\" & I & ".pdf" s.Range.Select ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & I & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdPrintSelection, Item:=wdExportDocumentContent, _ IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _ True, UseISO19005_1:=False Next End Sub
[/vba] Он сохраняет разные разделы в отдельные ПДФ файлы - а потом уже распечатайте эти ПДФ.SLAVICK
А зачем Вам ссылки? я так понял проблема в том чтобы распечатать документ, а не работать в нем. Или это как-то видно при печати? Можете попробовать заменить процедуру передачи в pdf на xps, или вообще сразу на принтер. Главное в диапазоне печати сохранить Range:=wdPrintSelection
А зачем Вам ссылки? я так понял проблема в том чтобы распечатать документ, а не работать в нем. Или это как-то видно при печати? Можете попробовать заменить процедуру передачи в pdf на xps, или вообще сразу на принтер. Главное в диапазоне печати сохранить Range:=wdPrintSelection
олько заставить код остальные разделы печатать (после 137)
Ну это легко - в первый инпутбокс введите 138:
[vba]
Код
Sub SplitChaptersToPDF() Dim ch As Document, s As Section, from_&, to_&, i& Set ch = ActiveDocument from_ = InputBox("from_section¹:", , 1) to_ = InputBox("TO_section¹:", , ch.Sections.Count) For i = from_ To to_ Set s = ch.Sections(i) Debug.Print ch.Path & "\" & i & ".pdf" s.Range.Select ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & i & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdPrintSelection, Item:=wdExportDocumentContent, _ IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _ True, UseISO19005_1:=False Next End Sub
Можно почитать тут и попробовать поменять нужные свойства. Возможно в ней слишком много форматов, или хитрых объектов: Попробуйте все True заменить на False
олько заставить код остальные разделы печатать (после 137)
Ну это легко - в первый инпутбокс введите 138:
[vba]
Код
Sub SplitChaptersToPDF() Dim ch As Document, s As Section, from_&, to_&, i& Set ch = ActiveDocument from_ = InputBox("from_section¹:", , 1) to_ = InputBox("TO_section¹:", , ch.Sections.Count) For i = from_ To to_ Set s = ch.Sections(i) Debug.Print ch.Path & "\" & i & ".pdf" s.Range.Select ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & i & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdPrintSelection, Item:=wdExportDocumentContent, _ IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _ True, UseISO19005_1:=False Next End Sub
Можно почитать тут и попробовать поменять нужные свойства. Возможно в ней слишком много форматов, или хитрых объектов: Попробуйте все True заменить на FalseSLAVICK
о можно при экспорте в пдф убрать пустой лист, который добавляется?
Попробуйте так(лучше варианта не смог пока придумать):
[vba]
Код
Sub d() Dim ch As Document, s As Section, from_&, to_&, i&, r#, rl# Set ch = ActiveDocument from_ = InputBox("from_section¹:", , 1) to_ = InputBox("TO_section¹:", , ch.Sections.Count)
For i = from_ To to_ Set s = ch.Sections(i) r = s.Range.Start rl = s.Range.End - 1 Set ra = ActiveDocument.Range(r, rl) ra.Select ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & i & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdPrintSelection, Item:=wdExportDocumentContent, _ IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _ True, UseISO19005_1:=False Next End Sub
о можно при экспорте в пдф убрать пустой лист, который добавляется?
Попробуйте так(лучше варианта не смог пока придумать):
[vba]
Код
Sub d() Dim ch As Document, s As Section, from_&, to_&, i&, r#, rl# Set ch = ActiveDocument from_ = InputBox("from_section¹:", , 1) to_ = InputBox("TO_section¹:", , ch.Sections.Count)
For i = from_ To to_ Set s = ch.Sections(i) r = s.Range.Start rl = s.Range.End - 1 Set ra = ActiveDocument.Range(r, rl) ra.Select ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & i & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, Range:=wdPrintSelection, Item:=wdExportDocumentContent, _ IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _ True, UseISO19005_1:=False Next End Sub
Sub d() Dim ch As Document, s As Section, from_&, to_&, i&, r#, rl# Set ch = ActiveDocument from_ = InputBox("from_section?:", , 1) to_ = InputBox("TO_section?:", , ch.Sections.Count) For i = from_ To to_ Set s = ch.Sections(i) r = s.Range.Characters(1).Information(1) rl = s.Range.Information(1) ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & i & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, _ Range:=wdExportFromTo, From:=r, To:=rl, Item:=wdExportDocumentContent, _ IncludeDocProps:=False, KeepIRM:=False, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=False, BitmapMissingFonts:= _ False, UseISO19005_1:=False Next End Sub
[/vba]
А если так:
[vba]
Код
Sub d() Dim ch As Document, s As Section, from_&, to_&, i&, r#, rl# Set ch = ActiveDocument from_ = InputBox("from_section?:", , 1) to_ = InputBox("TO_section?:", , ch.Sections.Count) For i = from_ To to_ Set s = ch.Sections(i) r = s.Range.Characters(1).Information(1) rl = s.Range.Information(1) ActiveDocument.ExportAsFixedFormat OutputFileName:=ch.Path & "\" & i & ".pdf" _ , ExportFormat:=wdExportFormatPDF _ , OpenAfterExport:=False, OptimizeFor:=wdExportOptimizeForPrint, _ Range:=wdExportFromTo, From:=r, To:=rl, Item:=wdExportDocumentContent, _ IncludeDocProps:=False, KeepIRM:=False, CreateBookmarks:= _ wdExportCreateNoBookmarks, DocStructureTags:=False, BitmapMissingFonts:= _ False, UseISO19005_1:=False Next End Sub
в файле-примере все ОК, а в моей файле 1-й раздел отлично, а потом то захватывает данные 1-го раздела, то печатает несколько страниц 1-го раздела
в файле-примере все ОК, а в моей файле 1-й раздел отлично, а потом то захватывает данные 1-го раздела, то печатает несколько страниц 1-го разделаmechanix85