私はbarcode4jライブラリ(code128bean、他のバーコード豆)からバーコードを生成しようとしており、既存のpdfに追加しようとしています。バーコードイメージは、以下のコードを使用してローカルに作成されています。pdfbox(1.8.12)とbarcode4jライブラリを使ってCode128バーコードイメージを既存のpdfに追加するには?
//Create the barcode bean
Code128Bean code128Bean = new Code128Bean();
final int dpi = 150;
code128Bean.setModuleWidth(UnitConv.in2mm(1.0f/dpi)); //makes the narrow bar
//width exactly one pixel
//bean.setCodeset(2);
code128Bean.doQuietZone(false);
//Open output file
File outputFile = new File("D:/barcode4jcod128.png"); //I dont want to create it
OutputStream code128Stream = new FileOutputStream(outputFile);
try {
//Set up the canvas provider for monochrome PNG output
BitmapCanvasProvider canvas1 = new BitmapCanvasProvider(
code128Stream, "image/x-png", dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0);
//Generate the barcode
code128Bean.generateBarcode(canvas1, "123456");
//Signal end of generation
canvas1.finish();
} finally {
code128Stream.close();
}
- 私の問題は、私はイメージを作成し、ファイルシステムにローカルに保存して、PDFに画像として追加したくないです。私はちょうど動的に私はバーコードイメージを動的に作成し、それをpdfに加えることを意味します。 私は(
List<PDPage> pages = catalog.getAllPages();
)のように、私は
catalog.getAllPages()
メソッドから取得した既存のPDPagesに(
PDPage.PAGE_SIZE_A4
のような)ページサイズを設定するにはどうすればよい
誰かがこれを助けることができますか?
ご協力ありがとうございます。ティルマン。ここで私はバーコードが作成されつつあるが、それは垂直に作成され
public static BufferedImage geBufferedImageForCode128Bean(String barcodeString) {
Code128Bean code128Bean = new Code128Bean();
final int dpi = 150;
code128Bean.setModuleWidth(UnitConv.in2mm(1.0f/dpi)); //makes the narrow bar
code128Bean.doQuietZone(false);
BitmapCanvasProvider canvas1 = new BitmapCanvasProvider(
dpi, BufferedImage.TYPE_BYTE_BINARY, false, 0
);
//Generate the barcode
code128Bean.generateBarcode(canvas1, barcodeString);
return canvas1.getBufferedImage();
}
// main code
PDDocument finalDoc = new PDDocument();
BufferedImage bufferedImage = geBufferedImageForCode128Bean("12345");
PDXObjectImage pdImage = new PDPixelMap(doc, bufferedImage);
PDPageContentStream contentStream = new PDPageContentStream(
finalDoc, pdPage, true, true, true
);
contentStream.drawXObject(pdImage, 100, 600, 50, 20);
contentStream.close();
finalDoc.addPage(pdPage);
finalDoc.save(new File("D:/Test75.pdf"));
をやったことです。私は水平に見たいと思う。あなたの助けをもう一度ありがとう。
これはkindofがNO-ありますいいえ、質問を編集して新しい質問を追加します。それに、私はそのコメントにとにかく答えました。 –