Автор: bogomolov
Дата сообщения: 19.05.2010 18:49
К вопросу о печати брошюрой.
Печать из Word имеет замечательную функцию масштабирования и печати нескольких страниц на одном листе. Пользуясь этой функцией, легко любой текст распечатать брошюрой. Нужно только правильно рассчитать последовательность распечатываемых страниц.
Автоматизировал этот процесс расчетов в своем [more=макросе]Sub FilePrintBook()
ActiveWindow.View.ShowHiddenText = False
p0 = Selection.Information(4)
p = (Int((p0 - 1) / 4) + 1)
a = a + "Для печати брошюры следует:" + Chr(13)
a = a + "* подготовить для печати (оставить а лотке)" + Str(p) + " лист(ов);" + Chr(13)
a = a + "* после печати лицевой части листов отпечатать обратную сторону" + Chr(13)
a = a + " (стопку листов из выходного лотка вставить " + 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.PrintOut Range:=.Range, Pages:=.Pages, Copies:=.NumCopies, PrintZoomColumn:=2, PrintZoomRow:=1
End If
End With
End Sub[/more] и с удовольствием пользуюсь им уже более 10 лет.