Компиляция в PDF

Issue #1 new
Yury kozlov created an issue

Доброго времени суток!

Сборку вел в fedora20. FOP Version SVN tags/fop-1_1 docbook5-style-xsl-1.78.1-2.fc20.noarch

команда fop -catalog -xml mybook.xml -xsl ~/espd-docbook5/espd/espd.xsl -pdf mybook.pdf выдает кучу ошибок в частности: org.apache.fop.fo.ValidationException: "fo:block-container" is missing child elements. поэтому произвожу сборку последовантельно следующими командами: xsltproc ~/git/espd-docbook5/espd/espd.xsl mainbody.xml > pz.fo Making portrait pages on A4 paper (210mmx297mm)

Заменяю все блоки "fo:block-container" на "fo:block" и делаю fop -fo pz.fo -pdf pz.pdf

тогда сборка заканчивается успешно, но: 1. на первом и втором листе табличка (там где инв.№, и т.д.), находящаяся слева переходит на самый верх. 2. все символы русского языка отображаются как #

Подскажите, почему может выдавать ошибку на тегах "fo:block-container" ? Требуется ли руссификация fop ? Или можно найти где то руссифицированный?

С уважением, Козлов Юрий

Comments (10)

  1. Vasiliy Shlykov

    Я тут подумал, что это возможно происходит из-за незаполненных данных по авторам (см. раздел "Лист утверждения и титульный лист") в описании. В любом случае это ошибка, к следующей версии исправлю.

    Если вместо русских букв решетки - значит что-то со шрифтом (либо не установлен, либо не найден). Шрифты можно задать из командной строки:

    -param body.font.family 'Liberation Sans'   -param title.font.family 'Liberation Sans'  -param monospace.font.family 'Liberation Mono,Anonymous Pro'    -param symbol.font.family 'OpenSymbol' 
    
  2. Yury kozlov reporter

    К сожалению версия из репозитория выдала другие ошибки, при компиляции и компиляция опять не прошла, хотя лист авторов там заполнен. Команда:

    fop -catalog -c ~/git/espd-docbook5/fop.xml -xml book.xml -xsl ~/git/espd-docbook5/espd/espd.xsl -param espd.decimal '12345678' -pdf mybook.pdf

    Выдает следующее Cannot find CatalogManager.properties Compiler warnings: http://docbook.sourceforge.net/release/xsl-ns/current/fo/table.xsl: line 459: Attribute 'border-start-style' outside of element. http://docbook.sourceforge.net/release/xsl-ns/current/fo/table.xsl: line 460: Attribute 'border-end-style' outside of element. http://docbook.sourceforge.net/release/xsl-ns/current/fo/table.xsl: line 461: Attribute 'border-top-style' outside of element. http://docbook.sourceforge.net/release/xsl-ns/current/fo/table.xsl: line 462: Attribute 'border-bottom-style' outside of element. http://docbook.sourceforge.net/release/xsl-ns/current/fo/index.xsl: line 352: Attribute 'rx:key' outside of element. ERROR: 'The first argument to the non-static Java function 'insertCallouts' is not a valid object reference.' FATAL ERROR: 'The first argument to the non-static Java function 'insertCallouts' is not a valid object reference.' дек 09, 2014 8:43:41 AM FOP startFOP SEVERE: Exception org.apache.fop.apps.FOPException: The first argument to the non-static Java function 'insertCallouts' is not a valid object reference. javax.xml.transform.TransformerConfigurationException: The first argument to the non-static Java function 'insertCallouts' is not a valid object reference. at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:303) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:130) at org.apache.fop.cli.Main.startFOP(Main.java:177) at org.apache.fop.cli.Main.main(Main.java:207) Caused by: javax.xml.transform.TransformerConfigurationException: The first argument to the non-static Java function 'insertCallouts' is not a valid object reference. at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:991) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:764) at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:281) ... 3 more


    javax.xml.transform.TransformerConfigurationException: The first argument to the non-static Java function 'insertCallouts' is not a valid object reference. at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:991) at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:764) at org.apache.fop.cli.InputHandler.transformTo(InputHandler.java:281) at org.apache.fop.cli.InputHandler.renderTo(InputHandler.java:130) at org.apache.fop.cli.Main.startFOP(Main.java:177) at org.apache.fop.cli.Main.main(Main.java:207)

    Буду признателен, если подскажте, как поступить с этой ошибкой.

  3. Vasiliy Shlykov

    А вот это уже сложнее, какие-то внутренние ошибки Java. Наши версии:

    $ fop -version
    FOP Version 1.1
    
    $ java -version
    java version "1.7.0_65"
    OpenJDK Runtime Environment (IcedTea 2.5.1) (7u65-2.5.1-5~deb7u1)
    OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
    
  4. Yury kozlov reporter
    $ fop -v
    FOP Version SVN tags/fop-1_1
    
    $ java -version
    java version "1.7.0_71"
    OpenJDK Runtime Environment (fedora-2.5.3.0.fc20-x86_64 u71-b14)
    OpenJDK 64-Bit Server VM (build 24.65-b04, mixed mode)
    
  5. Yury kozlov reporter

    Следующие команды выводят pdf

    xsltproc ~/git/espd-docbook5/espd/espd.xsl \-param espd.decimal '12345678' book.xml > pz.fo
    
    fop -fo pz.fo -pdf pz.pdf
    

    выглядит правильно, но русский язык так и не понимает.

    команда

    xsltproc ~/git/espd-docbook5/espd/espd.xsl \-param espd.decimal '12345678' \-param body.font.family 'Liberation Sans' \-param title.font.family 'Liberation Sans' \-param monospace.font.family 'Liberation Mono,Anonymous Pro' \-param symbol.font.family 'OpenSymboOpenSymbol' book.xml > pz2.fo
    

    выдает ошибку

    warning: failed to load external entity "-param"
    unable to parse -param
    warning: failed to load external entity "espd.decimal"
    unable to parse espd.decimal
    warning: failed to load external entity "12345678"
    unable to parse 12345678
    warning: failed to load external entity "-param"
    unable to parse -param
    warning: failed to load external entity "body.font.family"
    unable to parse body.font.family
    warning: failed to load external entity "Liberation Sans"
    unable to parse Liberation Sans
    warning: failed to load external entity "-param"
    unable to parse -param
    warning: failed to load external entity "title.font.family"
    unable to parse title.font.family
    warning: failed to load external entity "Liberation Sans"
    unable to parse Liberation Sans
    warning: failed to load external entity "-param"
    unable to parse -param
    warning: failed to load external entity "monospace.font.family"
    unable to parse monospace.font.family
    warning: failed to load external entity "Liberation Mono,Anonymous Pro"
    unable to parse Liberation Mono,Anonymous Pro
    warning: failed to load external entity "-param"
    unable to parse -param
    warning: failed to load external entity "symbol.font.family"
    unable to parse symbol.font.family
    warning: failed to load external entity "OpenSymboOpenSymbol"
    unable to parse OpenSymboOpenSymbol
    XPath error : Invalid expression
    Liberation Sans
               ^
    runtime error
    Evaluating user parameter body.font.family failed
    

    Вам случайно не известен способ задать шрифты в xsltproc ?

  6. Vasiliy Shlykov

    У xsltproc вместо -param — --param.

    Но лучше воспользоваться своим xsl файлом, пример лежит в репе (sample.xsl).

  7. Yury kozlov reporter

    Добрый день. К сожалению остались проблемы с русским языком. Fop на прямую не срабатывает. Зато xsltpoc ошибок не выдает. Пока завален работой, возможно продолжу эксперименты попозже. Спасибо!

  8. Yury kozlov reporter

    Добрый день!

    На сборке под Mint выполнение преобразований через xsltproc, а затем через fop выдает файл без русских шрифтов. Однако, если собрать файл пояснительной записки используя make (находясь в каталоге шаблоны), то pdf получается нормальный. Считаю, что проблема решена (если вообще была).

    С уважением, Юрий

  9. Log in to comment