PDF jet

Extended Latin, Cyrillic and Greek support using code pages


Example_06.pdf
import java.io.*;

import com.pdfjet.*;


/**
 *  Example_06.java
 *
 */
class Example_06 {

    public Example_06() throws Exception {

        FileOutputStream fos = new FileOutputStream("Example_06.pdf");

        PDF pdf = new PDF(fos);

        BufferedInputStream bis1 = new BufferedInputStream(
                getClass().getResourceAsStream(
                        "fonts/DroidFonts/DroidSerif-Regular.otf"));
        Font f1 = new Font(pdf, bis1, CodePage.CP1251, Embed.YES);

        BufferedInputStream bis2 = new BufferedInputStream(
                getClass().getResourceAsStream(
                        "fonts/DroidFonts/DroidSerif-Regular.otf"));
        Font f2 = new Font(pdf, bis2, CodePage.CP1252, Embed.YES);
        
        BufferedInputStream bis3 = new BufferedInputStream(
                getClass().getResourceAsStream(
                        "fonts/DroidFonts/DroidSerif-Regular.otf"));
        Font f3 = new Font(pdf, bis3, CodePage.CP1253, Embed.YES);

        Font f4 = new Font(pdf, CoreFont.ZAPF_DINGBATS);

        Page page = new Page(pdf, Letter.PORTRAIT);

        int x_pos = 50;
        int y_pos = 0;

        f1.setSize(20);
        f2.setSize(20);
        f3.setSize(20);
        f4.setSize(18);

        TextLine text = new TextLine(f1);
        text.setPosition(x_pos, y_pos);
        StringBuilder buf = new StringBuilder();
        for (int i = 32; i <= 256; i++) {
            if (i % 32 == 0) {
                text.setText(buf.toString());
                text.setPosition(x_pos, y_pos += 24);
                text.drawOn(page);
                buf = new StringBuilder();
            }
            buf.append((char) i);
        }

        text.setFont(f2);
        buf = new StringBuilder();
        for (int i = 32; i <= 256; i++) {
            if (i % 32 == 0) {
                text.setText(buf.toString());
                text.setPosition(x_pos, y_pos += 24);
                text.drawOn(page);
                buf = new StringBuilder();
            }
            buf.append((char) i);
        }

        text.setFont(f3);
        buf = new StringBuilder();
        for (int i = 32; i <= 256; i++) {
            if (i == 210 || i == 242) {
                // Character 210 is not mapped in the 1253 code page
                // Character 242 - "SIGMA FINAL" is not available in this font
                continue;
            }
            if (i % 32 == 0) {
                text.setText(buf.toString());
                text.setPosition(x_pos, y_pos += 24);
                text.drawOn(page);
                buf = new StringBuilder();
            }
            buf.append((char) i);
        }

        text.setFont(f4);
        buf = new StringBuilder();
        for (int i = 32; i <= 256; i++) {
            if (i % 32 == 0) {
                text.setText(buf.toString());
                text.setPosition(x_pos, y_pos += 22);
                text.setUnderline( true );
                text.drawOn(page);
                buf = new StringBuilder();
            }
            buf.append((char) i);
        }

        pdf.flush();
        fos.close();
    }

    public static void main(String[] args) {
        try {
            new Example_06();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}   // End of Example_06.java

© 2017 Innovatics Inc.