2016-12-28 2 views
-1

У меня есть документ с одной страницей, сделанный с iTextSharp (размер A4 в портретной ориентации). Теперь я копирую первую страницу, вставляю ее как вторую - есть две одинаковые страницы. В Acrobat Reader есть возможность печатать несколько листов на странице, поэтому я могу печатать эти 2 страницы на 1 в альбомной ориентации.Как сделать многостраничную страницу в iTextSharp?

Как добиться такого же эффекта, используя только iTextSharp?

+2

_Research; эксперимент; отлаживать; спросите об этом; эксперимент; отлаживать; корабль!_. [ask] - – MickyD

ответ

3

Пожалуйста, прочитайте учебник о том, как использовать IText 7, более конкретно Chapter 6: Reusing existing PDF documents

В этой главе вы найдете пример под названием TheGoldenGateBridge_N_up:

PdfDocument pdf = new PdfDocument(new PdfWriter(dest)); 
PdfDocument sourcePdf = new PdfDocument(new PdfReader(SRC)); 
//Original page 
PdfPage origPage = sourcePdf.getPage(1); 
Rectangle orig = origPage.getPageSize(); 
PdfFormXObject pageCopy = origPage.copyAsFormXObject(pdf); 
//N-up page 
PageSize nUpPageSize = PageSize.A4.rotate(); 
PdfPage page = pdf.addNewPage(nUpPageSize); 
PdfCanvas canvas = new PdfCanvas(page); 
//Scale page 
AffineTransform transformationMatrix = AffineTransform.getScaleInstance(
    nUpPageSize.getWidth()/orig.getWidth()/2f, 
    nUpPageSize.getHeight()/orig.getHeight()/2f); 
canvas.concatMatrix(transformationMatrix); 
//Add pages to N-up page 
canvas.addXObject(pageCopy, 0, orig.getHeight()); 
canvas.addXObject(pageCopy, orig.getWidth(), orig.getHeight()); 
canvas.addXObject(pageCopy, 0, 0); 
canvas.addXObject(pageCopy, orig.getWidth(), 0); 
// close the documents 
pdf.close(); 
sourcePdf.close(); 

В этом примере мы добавляем 4 страницы существующего PDF на одну страницу. Принцип называется N-upping, в котором вы заменяете N силой 2. В примере мы делаем 4-upping; вы хотите 2-upping. Изменение примера 4-up в примере 2-up - это только вопрос применения простой математики.

Вам также будет полезно прочитать эту запись в FAQ: How to convert an A4 size PDF to a PDF booklet? Если вы все еще используете старую версию iText, вы можете прочитать iText 5 version of the FAQ entry.

Примечание: Я вижу проголосовавший и важный комментарий. Обратите внимание, что ваш вопрос серьезно испорчен, потому что вы не указываете, какую версию iText вы используете (я предполагаю самый последний), и вы не публикуете какой-либо код, который показывает, что вы пробовали (это не делается на Переполнение стека).

+0

Я добавил учебную записку ... –

+0

Спасибо за это :) – MickyD

+0

Oh !!! Это то, как вы получаете шляпы ?! лол. Не волнуйся :) С Новым Годом – MickyD

Смежные вопросы