package org.ijsolutions.pdf; import java.io.File; import java.io.IOException; import java.io.OutputStream; import java.util.HashMap; import org.entermediadb.asset.Asset; import org.entermediadb.asset.MediaArchive; import org.entermediadb.asset.convert.ConversionManager; import org.entermediadb.asset.convert.ConvertInstructions; import org.entermediadb.asset.convert.TranscodeTools; import org.openedit.page.Page; import org.openedit.page.manage.PageManager; import com.itextpdf.text.Document; import com.itextpdf.text.DocumentException; import com.itextpdf.text.Image; import com.itextpdf.text.Rectangle; import com.itextpdf.text.pdf.BarcodeQRCode; import com.itextpdf.text.pdf.PdfContentByte; import com.itextpdf.text.pdf.PdfWriter; public class QRUtil { protected PageManager fieldPageManager; protected File fieldRoot; public PageManager getPageManager() { return fieldPageManager; } public void setPageManager(PageManager inPageManager) { fieldPageManager = inPageManager; } public File getRoot() { return fieldRoot; } public void setRoot(File inRoot) { fieldRoot = inRoot; } public void createQR(OutputStream out, String data) throws IOException, DocumentException { Document document = new Document(new Rectangle(500, 500)); document.setMargins(0, 0, 0, 0); PdfWriter writer = PdfWriter.getInstance(document, out); document.open(); PdfContentByte cb = writer.getDirectContent(); BarcodeQRCode qrcode = new BarcodeQRCode(data, 500, 500, null); Image img = qrcode.getImage(); document.add(img); // step 5 document.close(); } public String createQR(MediaArchive inArchive, String path, String data) throws IOException, DocumentException { if (path.endsWith("pdf")) { Page output = getPageManager().getPage(path); if (!output.exists()) { createQR(output.getContentItem().getOutputStream(), data); } } if (path.endsWith("jpg") || path.endsWith("png")) { Page temp = getPageManager().getPage("/WEB-INF/temp/tempqr.pdf"); createQR(temp.getContentItem().getOutputStream(), data); Page output = getPageManager().getPage(path); TranscodeTools creatorManager = inArchive.getTranscodeTools(); ConversionManager transcoder = creatorManager.getManagerByRenderType("image"); //ConvertInstructions cacheInsructions = transcoder.createInstructions(); ConvertInstructions cacheInsructions = new ConvertInstructions(inArchive); cacheInsructions.setInputFile(temp.getContentItem()); cacheInsructions.setOutputFile(output.getContentItem()); transcoder.createOutput(cacheInsructions); return path; } return path; } }