2015-06-23 2 views
-1

Я использовал iTextSharp для добавления примечания нижнего колонтитула к существующему pdf. Проблема заключается в том, когда я обращаюсь к файлу pdf и создаю другой файл из его содержимого, ориентация страниц изменяется и содержимое обрезается. код я использовал это:iTextSharp Содержимое PDF-файла для печати вырезано

//using itextsharp 
string oldFile = dtroldp + strfn; 
if (File.Exists(oldFile)) 
{ 
    string newFile = strpath + "sys_" + docid + strext; 

    PdfReader reader = new PdfReader(oldFile); 
    int numberOfPages = reader.NumberOfPages; 
    FileStream fs = new FileStream(newFile, FileMode.Create, FileAccess.Write); 

    Document document = new Document(); 

    // open the writer 
    PdfWriter writer = PdfWriter.GetInstance(document, fs); 
    writer.PageEvent = new PDFFooter(); 

    document.Open(); 

    for (int i = 1; i <= numberOfPages; i++) 
    { 
     document.SetPageSize(reader.GetPageSizeWithRotation(1)); 

     document.NewPage(); 
     PdfContentByte cb = writer.DirectContent; 

     //// select the font properties 
     BaseFont bf = BaseFont.CreateFont(BaseFont.HELVETICA, BaseFont.CP1252, BaseFont.NOT_EMBEDDED); 
     cb.SetColorFill(BaseColor.BLACK); 
     cb.SetFontAndSize(bf, 32); 

     // write the text in the pdf content 
     cb.BeginText(); 

     cb.EndText(); 

     PdfImportedPage page = writer.GetImportedPage(reader, i); 

     cb.AddTemplate(page, 0, 0); 
    } 

    document.Close(); 

    fs.Close(); 
    writer.Close(); 
    reader.Close(); 
} 

Может кто-нибудь предложить мне, что не так я сделал? Почему ориентация автоматически изменяется?

+0

Приложите снимок экрана сгенерированного pdf –

+0

Отбросьте свой код. Прочтите [документацию] (http://pages.itextpdf.com/ebook-stackoverflow-questions.html). Прочтите все ответы о 'PdfStamper'. Чувствуете себя стыдно, потому что вы сначала не читали документацию, потому что делаете это неправильно. –

ответ

0

Ваш подход совершенно неправильный. Пожалуйста, выбросьте свой код.

Добавление содержимого в существующий PDF осуществляется с помощью PdfReader и PdfStamper, НЕ использованием Document и PdfWriter. Пожалуйста, начните, читая ответ на этот вопрос: Watermark in PDF file is hiding behind images

В этом примере мы добавляем водяные знаки в абсолютных положениях. В вашем случае у вас есть страницы разного размера, поэтому вы не должны использовать абсолютные позиции. Вы должны вычислить значение x и y, как это делается в ответ на этот вопрос: How to watermark PDFs using text or images?

Вы должны знать ответ на следующие вопросы:

Объединив всю эту мудрость, вы сможете добавить нижний колонтитул в соответствующее место, используя соответствующие классы и методы.

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