2015-02-19 3 views
0

У меня есть код xslfo для генерации PDF-файлов, и я использую Apache FOP для этого. В каждом блоке я упоминаю объекты форматирования, такие как семейство шрифтов и размер. Могу ли я перенести его в верхнюю часть fo: block, не ухудшая производительность?Заставляет ли все форматирование в верхнем блоке повысить производительность генерации PDF?

Источник тока:

<fo:block widows="2" orphans="2" font-size="10pt" line-height="1.147" white-space-collapse="false"> 
        <fo:block space-after="8pt" space-after.conditionality="retain" line-height="1.2378041666666666" font-family="TimesNewRoman" font-size="11pt" text-align="center"> 
         <fo:inline font-family="TimesNewRoman" font-weight="bold" font-size="14pt"> 
          <fo:leader leader-length="0pt" />Some Title 
         </fo:inline> 
        </fo:block> 

    <fo:block space-after="8pt" space-after.conditionality="retain" line-height="1.2378041666666666" font-family="TimesNewRoman" font-size="11pt" text-align="center"> 
          <fo:inline font-family="TimesNewRoman" font-weight="bold" font-size="14pt"> 
           <fo:leader leader-length="0pt" />Some Other Title 
          </fo:inline> 
         </fo:block> 
    </fo:block> 

Хочет изменить на:

<fo:block widows="2" orphans="2" line-height="1.147" white-space-collapse="false" font-family="TimesNewRoman" font-size="11pt"> 

         <fo:block space-after="8pt" space-after.conditionality="retain" line-height="1.2378041666666666" text-align="center"> 
          <fo:inline font-family="TimesNewRoman" font-weight="bold" font-size="14pt"> 
           <fo:leader leader-length="0pt" />Some Title 
          </fo:inline> 
         </fo:block> 

     <fo:block space-after="8pt" space-after.conditionality="retain" line-height="1.2378041666666666" text-align="center"> 
           <fo:inline font-family="TimesNewRoman" font-weight="bold" font-size="14pt"> 
            <fo:leader leader-length="0pt" />Some Other Title 
           </fo:inline> 
          </fo:block> 
     </fo:block> 

Извините за плохое форматирование коды. Мне нужно отдать предпочтение скорости генерации документа. Что было бы лучше из двух?

+0

Это может зависеть полностью от вашего процессора xsl-fo и рассматриваемого средства просмотра PDF. – mkl

+0

line-height = "1.2378041666666666" задает высоту с точностью до одного атома. Когда вы печатаете с разрешением 1200 точек на дюйм, нет смысла определять измерения более точными, чем 1/1200 "или 0,02 мм. Я подозреваю, что вы получаете довольно быстрый удар здесь. – Hobbes

+0

Я использую Apache FOP в качестве процессора – SinnerShanky

ответ

0

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

Теперь, это сказано. В процессе создания узлов создаются и сравниваются узлы, а преобразование XML + XSL в XSL FO принимает память и пространство для всех этих узлов.

Так, например, определение семейства шрифтов (как одного и того же семейства шрифтов) для каждого элемента, скорее всего, будет разрешено внутренне в двигателе на один переключатель шрифтов в промежуточном формате движка, но, конечно же, это требуется время и память, чтобы проанализировать это и сделать это.

Сколько?

Минимальный. Существует гораздо больше времени, затрачиваемого на решение вопроса о букве писем, направлении bidi, о том, что подходит на линии, что делать на конце страницы, что держать вместе и многое, многое другое.

My guesstimate. 0,5%. Воздействие было бы больше на чтение файлов XSL FO, которые больше или их создание в памяти, если вы используете XML + XSL. Больше памяти. Это может повлиять на производительность, но очень мало.

Поместите таблицы внутри таблиц внутри таблиц и используйте удерживаемые и продолжающиеся заголовки = 20 +%. Или выберите огромный шрифт, такой как Arial Unicode, и попросите одного персонажа из него, как одну пулю.

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