Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Как мне создать PDF документ?


Автор: Wowa 6.2.2006, 12:04
Как мне создать PDF документ? Есть какая-нибудь либа/класс для этого?

Автор: LSD 6.2.2006, 12:14
http://www.pdfbox.org/

Автор: d_k 6.2.2006, 12:43
http://www.lowagie.com/iText/

Автор: Wowa 6.2.2006, 12:47
А еще есть? А спрашиваю я потому, что до сего момента мне PDF на PHP приходилось создавать. А сейчас я решил с ПХП на Яву переходить. ТАк вот, для ПХПесть только одна бесплатная либа для этого: fpdf.org. Которая уникод не поддерживает.

Есть также официальная платная либа - но она ооочень дорого стоит.
Добавлено @ 12:51
Кстати, я специально этот вопрос поместил в раздел J2EEE, а не в общие вопросы. Т.к. меня интересует, есть ли какая-нибудь разница, если я ПДФ в обычном ява-приложении создаю или же если в Сервлете.

Автор: d_k 6.2.2006, 13:06
Цитата(Wowa @ 6.2.2006, 12:47 Найти цитируемый пост)

я ПДФ в обычном ява-приложении создаю или же если в Сервлете

Никакой, фигачь в выходной поток с нужным контент тайпом. АПИ же не изменится smile
Добавлено @ 13:07
Кстати, просто к сведению, JasperReports использует именно iText. В примерах можно найти как генерится пдф в сервлете...

Автор: Fedrus 12.12.2007, 11:03
Вот решил поднять эту тему smile
Вопрос тот же - сгенерить пдф (в сервлете).
Погуглил и встретил предложение ипользования FOP библиотеки.
Fop на момент создания темы не было?? Как вы считаете что все-таки лучьше использовать fop, PDFBox, iText или может еще есть альтернативы???

Автор: Fedrus 12.12.2007, 12:06
Если все же fop то вопрос такой :
лучьше генерить именно XSL-FO документ самому
или сначало XML а к нему выполнить xslt преобразование. 
(учитывая то что ни с тем не с другим я особо не знаком)

Автор: Maksym 12.12.2007, 12:09
Использовал iText -- очень хорошо работает, не было проблем даже с такими нетривиальными вещами как штрихкоды.

Автор: Fedrus 12.12.2007, 12:52
Спасибо Maksym
Ваше мнение меня склонило к iText.
Сейчас читаю на http://www.lowagie.com/iText/ 
Вдруг можете посоветовать документацию(на русском) типо быстрый старт или ще что почитать (а то с английским плоховато)
но конечьно без альтернативы прочьту iText in Action на английском))

Автор: Maksym 12.12.2007, 13:07
На русском, к сожалению, информации по iText не видел.
Но http://fuxx.h1.ru/cgi-bin/wiki.cgi?JavaPdfLibraries человек пишет про iText "Отлично работает с русским языком." так, что хоть с этой стороны проблем с языком не должно быть..

Автор: Fedrus 12.12.2007, 13:36
Большое спасибо!
Буду разбираться если возникнет совсем не решабельная(мной) проблема напишу :O)

Автор: serger 12.12.2007, 17:13
FOP удобна тем, что можно много чего накрутить потом (ШК, SVG, и море всего ещё).. Да и ваще это xml. Те очень масштабируемая штука. Но и тяжёлая.

Цитата

Если все же fop то вопрос такой :
лучьше генерить именно XSL-FO документ самому
или сначало XML а к нему выполнить xslt преобразование. 
(учитывая то что ни с тем не с другим я особо не знаком)


Зависит от масштаба приложения и архитектуры. Для крупного проекта лучше сразу всё делать правильно, те через преобразование.

Ну и учитывайте, что xslt шаблон можно поправить без перекомпиляции, хотя опять таки xml(или FO) можно сгенерить и скриптовым языком..

Автор: Fedrus 13.12.2007, 09:47
Спасибо serger, возможно в будущем в более крупных проектах я буду использовать FOP.
Я уже успел немного побаловаться с iText. На первый взгляд очень удобная либа. И очень хорошая книга по ней написанна iText in Action издательства Manning Publications Co(что уже говорит о качестве). А онлайн версия книги очень удобная и понятная с ссылками на код и пдф к каждому примеру(которых куча).
Еще раз отдельное спасибо Maksym я просто в восторге от онлайн версии iText in Action! Даже не зная английский вообще можно легко разобраться. Советую всем начинающим прогерам(так как сам начинающий).
PS ну конечьно еще мой восторг может быть обуслевлен тем что я нигде еще не генерил ПДФ это первое знакомство и очень приятное.

Автор: DEER 13.12.2007, 11:25
Использую JasperReport
позволяет из одного и того шаблона генерировать и pdf, и html, и многое другое

Автор: serger 13.12.2007, 17:50
Цитата(DEER @ 13.12.2007,  11:25)
Использую JasperReport
позволяет из одного и того шаблона генерировать и pdf, и html, и многое другое

А можно поинтересоваться.. Шаблон что из себя представляет?

Автор: DEER 14.12.2007, 14:31
xml документ..
есть удобный редактор шаблонов iReport
пример кода такой 
Код

<?xml version="1.0" encoding="UTF-8"  ?>
<!-- Created with iReport - A designer for JasperReports -->
<!DOCTYPE jasperReport PUBLIC "//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport
         name="Untitled_report_1"
         columnCount="1"
         printOrder="Vertical"
         orientation="Portrait"
         pageWidth="595"
         pageHeight="842"
         columnWidth="535"
         columnSpacing="0"
         leftMargin="30"
         rightMargin="30"
         topMargin="20"
         bottomMargin="20"
         whenNoDataType="NoPages"
         isTitleNewPage="false"
         isSummaryNewPage="false">
    <property name="ireport.scriptlethandling" value="2" />
    <property name="ireport.encoding" value="UTF-8" />
    <import value="java.util.*" />
    <import value="net.sf.jasperreports.engine.*" />
    <import value="net.sf.jasperreports.engine.data.*" />


        <background>
            <band height="0"  isSplitAllowed="true" >
            </band>
        </background>
        <title>
            <band height="50"  isSplitAllowed="true" >
                <printWhenExpression><![CDATA[fdgfgd]]></printWhenExpression>
                <staticText>
                    <reportElement
                        x="132"
                        y="17"
                        width="335"
                        height="19"
                        key="staticText-1"/>
                    <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" rightBorder="None" rightBorderColor="#000000" bottomBorder="None" bottomBorderColor="#000000"/>
                    <textElement>
                        <font/>
                    </textElement>
                <text><![CDATA[ТТТТТТЕЕЕЕЕЕЕЕКККККККСССССССТТТТТТТ]]></text>
                </staticText>
            </band>
        </title>
        <pageHeader>
            <band height="50"  isSplitAllowed="true" >
            </band>
        </pageHeader>
        <columnHeader>
            <band height="30"  isSplitAllowed="true" >
            </band>
        </columnHeader>
        <detail>
            <band height="100"  isSplitAllowed="true" >
            </band>
        </detail>
        <columnFooter>
            <band height="30"  isSplitAllowed="true" >
            </band>
        </columnFooter>
        <pageFooter>
            <band height="50"  isSplitAllowed="true" >
            </band>
        </pageFooter>
        <lastPageFooter>
            <band height="50"  isSplitAllowed="true" >
            </band>
        </lastPageFooter>
        <summary>
            <band height="50"  isSplitAllowed="true" >
            </band>
        </summary>
</jasperReport>

Автор: serger 14.12.2007, 17:32
Угу так и думал.

Автор: gelo86 15.3.2008, 17:27
A kak html prewratit w pdf? Towest stob w pdf byli ne tegi a sam wid kak w browsere.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)