2014-02-18 1 views
0

Я предположил, что Document.Add() сместил содержимое в файл PDF (поток файлов) сразу, но похоже, что это не тот случай.Когда содержимое удаляется в файл PDF по itextsharp?

+0

Если вы просто добавляете абзац в документ, вы добавляете его на какую-либо страницу. Только когда страница завершена, и документ запустит следующую страницу, есть надежда, что страница будет (хотя бы частично) записана на диск. Но вы не можете быть уверены, прежде чем закрыть документ. – mkl

+0

Мне любопытно, почему вы хотели бы знать это и что бы вы сделали с этой информацией. Не то чтобы это секрет, мне просто любопытно. –

+0

@ Крис, я пишу 100K плюс записи в pdf, и это заняло много времени. Поэтому я думал, что только очистка содержимого до файла pdf в пакете 1K будет оптимизировать время создания файла pdf. – Sameer

ответ

0

PDF - Язык описания страниц. Каждая страница представляет собой автономный набор объектов. Содержимое хранится в одном или нескольких потоках. В PDF нет такой вещи, как параграф или таблица и т. Д. Это просто последовательность линий, фигур и глифов, нарисованных на странице.

При добавлении контента в документ с использованием метода Add() этот контент преобразуется в синтаксис PDF, который добавляется к потоку содержимого страницы. Как только страница заполнена, этот поток контента и соответствующий словарь страниц записываются в выходной поток и очищаются.

Не раньше!

Некоторые объекты, такие как шрифты, таблица перекрестных ссылок, форма XObjects, ... хранятся в памяти, поскольку они могут меняться в процессе создания документа.

В некоторых случаях вы можете освободить эти объекты раньше. Например: существует метод «шаблон выпуска» для немедленного ввода Form XObject в выходной поток. Image XObjects всегда записываются немедленно.

Ваш вопрос на самом деле не является вопросом. Это неправильное предположение. Просьба уточнить, есть ли у вас реальный вопрос.

+0

Мне было интересно узнать, когда содержимое файлов PDF будет сброшено в файл, и можно ли управлять им в itextsharp (скажем, только очистить содержимое до файла после n-го числа страниц, а затем очищать содержимое после того, как каждая страница будет заполнена. Это не так? Я новичок в языке pdf. – Sameer

+0

Нет смысла ждать, когда поток содержимого страницы будет завершен, поэтому невозможно приостановить его. Некоторые объекты, однако, имеют например: когда мы вставляем подмножество шрифта, мы сохраняем этот шрифт в памяти, потому что «будущей» странице может понадобиться добавить глиф к этому подмножеству, которое не использовалось на предыдущей странице. Ваш вопрос имеет смысл, но фраза была неудобной (потому что она сделала заявление, которое не было доказано). –

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