Как проверить размер PDF во время написания его с ITEXT7C#

Место общения программистов C#
Anonymous
 Как проверить размер PDF во время написания его с ITEXT7

Сообщение Anonymous »

Я использую iText7 для генерации PDF. Я хочу проверить его размер во время написания его, потому что, если он более 20 МБ, я хочу сохранить его и добавить оставшиеся части в новый файл PDF. Внутренний буфер, который выпускает данные только при закрытии документа, поэтому мой поток памяти не растет в размере, пока документ не будет закрыт. < /p>
Вот мой код: < /p>

Код: Выделить всё

using (MemoryStream memoryStream = new MemoryStream())
{
PdfWriter writer = new PdfWriter(memoryStream);
writer.SetCloseStream(false);

PdfDocument pdf = new PdfDocument(writer);

Document document = new Document(pdf);

int pageCount = 1;

int imageIndex = 0;

while (imageIndex < imageFiles.Count)
{
...I Do Things...

if (memoryStream.Length >= 20 * 1024 * 1024)
{
SavePdfToFile(memoryStream, currentPdfFileName);

memoryStream.SetLength(0);
pdfIndex++;
currentPdfFileName = GetPdfFileName(pdfFileName, pdfIndex);
writer = new PdfWriter(memoryStream);
writer.SetCloseStream(false);
pdf = new PdfDocument(writer);
document = new Document(pdf);
pageCount = 1;
}
}

SavePdfToFile(memoryStream, currentPdfFileName);
}
Я пытался использовать writer.getOutputStream (). Position Но та же проблема, внутренний буфер не выпускает в нем данные, пока документ не будет закрыт. < br/> method flush () устарел.
Как мне это сделать?

Подробнее здесь: https://stackoverflow.com/questions/794 ... ith-itext7

Вернуться в «C#»