1

Тема: Сортировка страниц для книжного варианта

Подскажите, пожалуйста, есть ли возможность автоматизировать сортировку страниц по принципу 2 странички на лист А4, но по книжному принципу (сшивание в центре страницы) Т.е чтоб если есть 8 страниц, группировка шла по принципу8-1,6-3 ну и для печати с обратной стороны 2-7, 4-5.. Можно как-то макрос вкрутить какой-то чтоб. это делал автоматически..а то 300 страниц вручную группировать просто утомительно. Заранее, спасибо

2

Re: Сортировка страниц для книжного варианта

Для вашего случая вам нужна программа (макрос), которая называется "Верстка текста книжкой". Поиском по инету ее можно спокойно найти. Но то же самое можно сделать, если иметь принтер, поддерживающий двухстороннюю печать, там есть опция печатать брошюрой. То же самое можно сделать и на простом принтере, но сначала нужно печать нечетные, а потом переложив их, уже четные страницы. Можно также напечатать просто на одной стороне,  потом на ксероксе(класса инженерной машины) создать буклет. Выбирайте, что вам больше подойдет..

3

Re: Сортировка страниц для книжного варианта

cdmax
Попоробуй это:

Sub FilePrintBook()
ActiveWindow.View.ShowHiddenText = False
p0 = Selection.Information(4)
p = (Int((p0 - 1) / 4) + 1)
a = a + "Для печати брошюры следует:" + Chr(13) + "* подготовить для печати (оставить а лотке)" + Str(p) + " лист(ов);" + Chr(13)
a = a + "* после печати лицевой части листов отпечатать обратную сторону" + Chr(13) + "  (стопку листов из выходного лотка вставить " + Chr(34) + "как есть" + Chr(34) + " в лоток подачи)." + Chr(13)
If MsgBox(a, 1, "Печать брошюры") <> vbOK Then End
For i = 1 To p
  k = i * 2 - 1: kk = p * 4 - (k - 1)
  If k > p0 Then k = p0 + 1
  If kk > p0 Then kk = p0 + 1
  tp = tp + Format(kk) + "," + Format(k) + ", "
Next
For i = p To 1 Step -1
  k = i * 2: kk = p * 4 - (k - 1)
  If k > p0 Then k = p0 + 1
  If kk > p0 Then kk = p0 + 1
  tp = tp + Format(k) + "," + Format(kk) + ", "
Next
tp = Left(tp, Len(tp) - 2)
With Dialogs(wdDialogFilePrint)
  .Range = 4
  .Pages = tp
  If .Display = -1 Then
    ActiveDocument.UndoClear
    Set MySec = ActiveDocument.Sections.Add(Range:=ActiveDocument.Range(Start:=ActiveDocument.Range.End - 1, End:=ActiveDocument.Range.End))
    MySec.PageSetup.DifferentFirstPageHeaderFooter = True: MySec.Headers(2).LinkToPrevious = False: MySec.Headers(2).Range.Text = "": MySec.Headers(2).Range.Style = -1
    ActiveDocument.PrintOut Range:=.Range, Pages:=.Pages, Copies:=.NumCopies, PrintZoomColumn:=2, PrintZoomRow:=1
    ActiveDocument.Undo 7
  End If
End With
End Sub