Search in sources :

Example 21 with PdfContentByte

use of com.itextpdf.text.pdf.PdfContentByte in project gephi by gephi.

the class PDFRenderTargetBuilder method buildRenderTarget.

@Override
public RenderTarget buildRenderTarget(PreviewModel previewModel) {
    CanvasSize cs = previewModel.getGraphicsCanvasSize();
    PreviewProperties properties = previewModel.getProperties();
    float marginBottom = properties.getFloatValue(PDFTarget.MARGIN_BOTTOM);
    float marginLeft = properties.getFloatValue(PDFTarget.MARGIN_LEFT);
    float marginRight = properties.getFloatValue(PDFTarget.MARGIN_RIGHT);
    float marginTop = properties.getFloatValue(PDFTarget.MARGIN_TOP);
    com.itextpdf.text.Rectangle pageSize = properties.getValue(PDFTarget.PAGESIZE);
    boolean landscape = properties.getBooleanValue(PDFTarget.LANDSCAPE);
    PdfContentByte cb = properties.getValue(PDFTarget.PDF_CONTENT_BYTE);
    PDFRenderTargetImpl renderTarget = new PDFRenderTargetImpl(cb, cs, pageSize, marginLeft, marginRight, marginTop, marginBottom, landscape);
    return renderTarget;
}
Also used : CanvasSize(org.gephi.preview.api.CanvasSize) PreviewProperties(org.gephi.preview.api.PreviewProperties) PdfContentByte(com.itextpdf.text.pdf.PdfContentByte)

Example 22 with PdfContentByte

use of com.itextpdf.text.pdf.PdfContentByte in project summer-bean by cn-cerc.

the class Barcode128Template method output.

@Override
public void output(Document document, PdfWriter writer) throws DocumentException, IOException {
    PdfContentByte cb = writer.getDirectContent();
    BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
    // 设置中文字体和字体样式
    Font f8 = new Font(bfChinese, fontSize, Font.NORMAL);
    DataSet dataSet = this.getDataSet();
    dataSet.first();
    while (dataSet.fetch()) {
        // 条码信息
        Barcode128 code128 = new Barcode128();
        code128.setBarHeight(barHeight);
        String code = dataSet.getString("Code_");
        code128.setCode(code);
        // 反算条码宽度
        int length = code.length();
        float x = 125 / ((length + 2) * 11 + 2f);
        code128.setX(x);
        document.add(code128.createImageWithBarcode(cb, null, null));
        // 描述信息
        Paragraph paragraph = new Paragraph(dataSet.getString("Name_"), f8);
        paragraph.setAlignment(Element.ALIGN_CENTER);
        document.add(paragraph);
    }
}
Also used : Barcode128(com.itextpdf.text.pdf.Barcode128) DataSet(cn.cerc.jdb.core.DataSet) BaseFont(com.itextpdf.text.pdf.BaseFont) PdfContentByte(com.itextpdf.text.pdf.PdfContentByte) Font(com.itextpdf.text.Font) BaseFont(com.itextpdf.text.pdf.BaseFont) Paragraph(com.itextpdf.text.Paragraph)

Example 23 with PdfContentByte

use of com.itextpdf.text.pdf.PdfContentByte in project summer-bean by cn-cerc.

the class BarcodeTemplate method output.

@Override
public void output(Document document, PdfWriter writer) throws DocumentException, IOException {
    PdfContentByte cb = writer.getDirectContent();
    BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
    // 设置中文字体和字体样式
    Font f8 = new Font(bfChinese, fontSize, Font.NORMAL);
    DataSet dataSet = this.getDataSet();
    dataSet.first();
    while (dataSet.fetch()) {
        // 商品名称
        if (dataSet.getCurrent().hasValue("Name_"))
            document.add(new Paragraph(dataSet.getString("Name_"), f8));
        // 商品条码
        BarcodeEAN codeEAN = new BarcodeEAN();
        codeEAN.setBarHeight(barHeight);
        codeEAN.setCode(dataSet.getString("Code_"));
        document.add(codeEAN.createImageWithBarcode(cb, null, null));
        codeEAN.setGuardBars(false);
    }
}
Also used : BarcodeEAN(com.itextpdf.text.pdf.BarcodeEAN) DataSet(cn.cerc.jdb.core.DataSet) BaseFont(com.itextpdf.text.pdf.BaseFont) PdfContentByte(com.itextpdf.text.pdf.PdfContentByte) Font(com.itextpdf.text.Font) BaseFont(com.itextpdf.text.pdf.BaseFont) Paragraph(com.itextpdf.text.Paragraph)

Example 24 with PdfContentByte

use of com.itextpdf.text.pdf.PdfContentByte in project summer-bean by cn-cerc.

the class ReportHeaderFooter method onEndPage.

public void onEndPage(PdfWriter writer, Document document) {
    Font f8 = null;
    try {
        if (bf == null)
            bf = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", false);
        if (fontDetail == null)
            // 数据体字体
            fontDetail = new Font(bf, presentFontSize, Font.NORMAL);
        if (f8 == null)
            f8 = new Font(bf, 8);
    } catch (DocumentException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }
    // 1.写入页眉
    Phrase phrase = new Phrase(header, f8);
    ColumnText.showTextAligned(writer.getDirectContent(), Element.ALIGN_RIGHT, phrase, document.right(), document.top() + 20, 0);
    // 2.写入前半部分的 第 X页/共
    int pageS = writer.getPageNumber();
    String foot1 = "第 " + pageS + " 页 /共";
    Phrase footer = new Phrase(foot1, fontDetail);
    // 3.计算前半部分的foot1的长度,后面好定位最后一部分的'Y页'这俩字的x轴坐标,字体长度也要计算进去 = len
    float len = bf.getWidthPoint(foot1, presentFontSize);
    // 4.拿到当前的PdfContentByte
    PdfContentByte cb = writer.getDirectContent();
    // 5.写入页脚1,x轴就是(右margin+左margin + right() -left()- len)/2.0F
    // 再给偏移20F适合人类视觉感受,否则肉眼看上去就太偏左了
    // ,y轴就是底边界-20,否则就贴边重叠到数据体里了就不是页脚了;注意Y轴是从下往上累加的,最上方的Top值是大于Bottom好几百开外的。
    ColumnText.showTextAligned(cb, Element.ALIGN_CENTER, footer, (document.rightMargin() + document.right() + document.leftMargin() - document.left() - len) / 2.0F + 20F, document.bottom() - 20, 0);
    // 6.写入页脚2的模板(就是页脚的Y页这俩字)添加到文档中,计算模板的和Y轴,X=(右边界-左边界 - 前半部分的len值)/2.0F +
    // len , y 轴和之前的保持一致,底边界-20
    cb.addTemplate(total, (document.rightMargin() + document.right() + document.leftMargin() - document.left()) / 2.0F + 20F, // 调节模版显示的位置
    document.bottom() - 20);
}
Also used : DocumentException(com.itextpdf.text.DocumentException) PdfContentByte(com.itextpdf.text.pdf.PdfContentByte) IOException(java.io.IOException) Phrase(com.itextpdf.text.Phrase) Font(com.itextpdf.text.Font) BaseFont(com.itextpdf.text.pdf.BaseFont)

Example 25 with PdfContentByte

use of com.itextpdf.text.pdf.PdfContentByte in project trainning by fernandotomasio.

the class TCATrainningDocumentODF method createPrincipal.

private void createPrincipal(String file) {
    try {
        PdfReader reader = new PdfReader(file);
        PdfPTable t1 = new PdfPTable(2);
        int n = reader.getNumberOfPages();
        PdfImportedPage page;
        for (int i = 1; i <= n; i++) {
            page = writer.getImportedPage(reader, i);
            // Image imagePage = Image.getInstance(page);
            // imagePage.scaleToFit(PageSize.A4.getWidth(), PageSize.A4.getHeight());
            PdfContentByte cb = writer.getDirectContent();
            cb.addTemplate(page, 0, 0);
            document.newPage();
        // document.add(imagePage);
        }
    } catch (IOException ex) {
        Logger.getLogger(TCATrainningDocumentODF.class.getName()).log(Level.SEVERE, null, ex);
    }
}
Also used : PdfImportedPage(com.itextpdf.text.pdf.PdfImportedPage) PdfPTable(com.itextpdf.text.pdf.PdfPTable) PdfContentByte(com.itextpdf.text.pdf.PdfContentByte) PdfReader(com.itextpdf.text.pdf.PdfReader) IOException(java.io.IOException)

Aggregations

PdfContentByte (com.itextpdf.text.pdf.PdfContentByte)29 IOException (java.io.IOException)13 DocumentException (com.itextpdf.text.DocumentException)10 Document (com.itextpdf.text.Document)9 PdfWriter (com.itextpdf.text.pdf.PdfWriter)9 BaseFont (com.itextpdf.text.pdf.BaseFont)8 PdfReader (com.itextpdf.text.pdf.PdfReader)7 FileOutputStream (java.io.FileOutputStream)7 Font (com.itextpdf.text.Font)6 Rectangle (com.itextpdf.text.Rectangle)6 PdfImportedPage (com.itextpdf.text.pdf.PdfImportedPage)5 PdfTemplate (com.itextpdf.text.pdf.PdfTemplate)5 Graphics2D (java.awt.Graphics2D)5 Paragraph (com.itextpdf.text.Paragraph)4 PdfGState (com.itextpdf.text.pdf.PdfGState)4 PdfPTable (com.itextpdf.text.pdf.PdfPTable)4 PdfGraphics2D (com.itextpdf.awt.PdfGraphics2D)3 Image (com.itextpdf.text.Image)3 Phrase (com.itextpdf.text.Phrase)3 Color (java.awt.Color)3