Hi Kevin,

What do you mean with richtext? In my case I would like create a PDF from
scratch with PDF DOM-like with the same mean than iText.
I have started to create a project (not commited for the moment

Here my (basic sample) to generate paragraph with several text content (that
I have called run like docx)

------------------------------------------------------------------------------------------------
PDFBoxDocument document = new PDFBoxDocument();

PDFBoxParagraph paragraph = document.addParagraph();
paragraph.addRun("AAAA");
paragraph.addRun(" ");
paragraph.addRun("BBB");

document.save("test.pdf");
------------------------------------------------------------------------------------------------

This code generate a PDF with :

------------------------------------------------------------------------------------------------
AAAA BBB
------------------------------------------------------------------------------------------------

If you are interested (working together?) I could commit my work on our
XDocReport git.

Regards Angelo

2011/10/14 Kévin Sailly <[email protected]>

> Hello,
>
> I am planning to build some code to create text from richtext (text from
> rech text editor), is that what you are planning to do?
>
> Regards,
> Kévin
>
>
>
> 2011/10/13 Angelo zerr <[email protected]>
>
> > Hi PDFBox Team,
> >
> > I have started to investigate time with PDFBox to try to provides
> > High-Level
> > API to manage paragraph, table widgets etc....
> > I recall my problem : we are using iText for our ODT->PDF and Docx->PDF
> > converter and we wish provides our code for Apache. Problem is iText
> > license.
> > So I'm searching PDF API (PDFBox?FOP?) to manage PDF with Java model (not
> > with XSL-FO). It seems that FOP provides this feature, but it's very hard
> > to
> > understand how to manage that?
> >
> > I have tried to manage a simple case : a paragraph with some text. I
> would
> > like generate PDF with this content:
> >
> > ----------------------------
> > AAAA BBBB
> > ----------------------------
> >
> > But not with one String but with 3 Strings (call 3 times
> > contentStream.drawString(...);)
> > The solution that I have found to manage that is to store the last X of
> the
> > added Stringby using Stringlenght+Font + Font size. Here my code
> >
> > ------------------------------------------------------
> > import java.io.IOException;
> >
> > import org.apache.pdfbox.exceptions.COSVisitorException;
> > import org.apache.pdfbox.pdmodel.PDDocument;
> > import org.apache.pdfbox.pdmodel.PDPage;
> > import org.apache.pdfbox.pdmodel.edit.PDPageContentStream;
> > import org.apache.pdfbox.pdmodel.font.PDFont;
> > import org.apache.pdfbox.pdmodel.font.PDType1Font;
> >
> > public class Test3 {
> >
> >    private static float lastX = 0;
> >
> >    public static void main(String[] args) throws IOException,
> >            COSVisitorException {
> >        PDDocument doc = null;
> >        try {
> >            doc = new PDDocument();
> >
> >            PDPage page = new PDPage();
> >            doc.addPage(page);
> >
> >            PDPageContentStream contentStream = new
> PDPageContentStream(doc,
> >                    page);
> >
> >            PDFont font = PDType1Font.HELVETICA_BOLD;
> >            long fontSize = 5;
> >            addText("AAAA", font, fontSize, page, contentStream);
> >            addText(" ", font, fontSize, page, contentStream);
> >            addText("BBBB", font, fontSize, page, contentStream);
> >
> >            contentStream.close();
> >
> >            doc.save("test.pdf");
> >
> >        } finally {
> >            if (doc != null) {
> >                doc.close();
> >            }
> >        }
> >    }
> >
> >    public static void addText(String text, PDFont font, long fontSize,
> >            PDPage page, PDPageContentStream contentStream) throws
> > IOException {
> >
> >        // Compute x
> >        float x = lastX;
> >        float nextX = lastX + font.getStringWidth(text) * fontSize /
> 1000f;
> >
> >        // Compute Y
> >        float y = page.getMediaBox().getHeight()
> >                - (font.getFontHeight("A".getBytes(), 0, 1) * fontSize /
> > 1000f);
> >
> >        contentStream.beginText();
> >        contentStream.setFont(font, fontSize);
> >        contentStream.moveTextPositionByAmount(x, y);
> >        contentStream.drawString(text);
> >        contentStream.endText();
> >
> >        // Recompute lastX
> >        lastX = nextX;
> >    }
> >
> > }
> > ------------------------------------------------------
> >
> > I would like know if it's the correct mean? If it's OK, I would like know
> > if
> > it's possible to retrieve the default Font of the document, because in my
> > case I have setted the Font?
> >
> > My code doesn't manage wrap text and I would like know how to manage
> that?
> >
> > I'm very interested to provides and contribute Hight level API for PDFBox
> > (paragraph, table...) but if I have no support I will give up my idea
> (hope
> > you will understand).
> >
> > Thank a lot for your help!
> >
> > Regards Angelo
> >
> >
> >
> >
> > 2011/9/5 Angelo zerr <[email protected]>
> >
> > > Hi Jeremias,
> > >
> > > I'm sorry I have not seen your answer
> > >
> >
> http://mail-archives.apache.org/mod_mbox/incubator-odf-dev/201108.mbox/%[email protected]%3E
> > > When I have studied FOP to manage PDF just with Java PDF widget I have
> > not
> > > found documentation so I believed that it was not possible, but it
> seems
> > > that is possible.
> > > That's very cool. I will study that.
> > >
> > > Many thanks!
> > >
> > > Regards Angelo
> > >
> > >
> > > 2011/9/5 Jeremias Maerki <[email protected]>
> > >
> > >> Angelo,
> > >> as I explained in [1], you don't have to use XSL-FO when using Apache
> > >> FOP. It supports alternative means to create PDFs.
> > >>
> > >> [1]
> > >>
> >
> http://mail-archives.apache.org/mod_mbox/incubator-odf-dev/201108.mbox/%[email protected]%3E
> > >>
> > >> But of course, Apache PDFBox would profit a lot from a higher-level
> PDF
> > >> production API. Any contributions are more than welcome.
> > >>
> > >> On 05.09.2011 10:56:20 Angelo zerr wrote:
> > >> > Hi Jukka,
> > >> >
> > >> > Thank a lot for you answer. I have already implemented a docx->PDF
> and
> > >> > odt->PDF converters with FOP but I decided to give up for :
> > >> >
> > >> > * performance reason. I have used XSLT cache, use xsl:key to compute
> > the
> > >> > odt/docx styles but the FOP implementation is less performant than
> > iText
> > >> > implementation, because :
> > >> >   * FOP process : odt -> XSLT -> FO -> FOP
> > >> >   * iText process : odt -> ODFDOM (Java) -> iText
> > >> > * xslt vs Java model : with the iText process, your model is Java,
> > >> although
> > >> > with FOP your model is XML. I prefer develop Java instead of XSLT.
> > >> >
> > >> > That's why I'm searching Java PDF API like PDFBox to replace iText
> to
> > >> > provides our code to Apache.
> > >> >
> > >> > Regards Angelo
> > >> >
> > >> > 2011/9/5 Jukka Zitting <[email protected]>
> > >> >
> > >> > > Hi Angelo,
> > >> > >
> > >> > > On Mon, Sep 5, 2011 at 10:11 AM, Angelo zerr <
> [email protected]
> > >
> > >> > > wrote:
> > >> > > > I suppose that my post was not well explained as I have no
> answer.
> > I
> > >> will
> > >> > > be
> > >> > > > very happy to use PDFBox in our XDocReport converter (docx-> PDF
> > and
> > >> > > odt->
> > >> > > > PDF) but develop converter is a big work and I can not
> investiaget
> > >> time
> > >> > > if I
> > >> > > > have no support.
> > >> > >
> > >> > > There's been some interest in making it easier to use PDFBox to
> > >> > > generate complex new PDF documents, but so far the main use cases
> > have
> > >> > > been simpler. You might want to look at Apache FOP
> > >> > > (http://xmlgraphics.apache.org/fop/) for a higher-level PDF
> > >> generation
> > >> > > tool.
> > >> > >
> > >> > > BR,
> > >> > >
> > >> > > Jukka Zitting
> > >> > >
> > >>
> > >>
> > >>
> > >>
> > >> Jeremias Maerki
> > >>
> > >>
> > >
> >
>

Reply via email to