Я пытаюсь создать этикетки со штрих-кодом в системе java pos, которую я создал. В настоящее время у меня есть такие этикетки:
, но теперь мне нужно изменить дизайн этикетки со штрих-кодом, чтобы распечатать его. Мне нужен такой дизайн:
У нашего принтера есть бумага с двумя наклейками на строку, поэтому нам нужно сгенерировать PDF с двумя столбцами таблицы, в каждом столбце одна метка. Я имею в виду что-то вроде этого:
У меня есть две функции, которые создали PDF. Я ранее создавал изображение штрих-кода с другой библиотекой:
public static Cell createImageCell(String path, String text1, String text2) throws MalformedURLException
{
Image img = new Image(ImageDataFactory.create(path));
img.setWidth(UnitValue.createPercentValue(100));
img.setHeight(UnitValue.createPercentValue(100));
Cell cell = new Cell();
Paragraph p1 = new Paragraph(text1);
Paragraph p2 = new Paragraph(text2);
cell.add(p1); //Here is the article details
cell.add(img); //here is the barcode image
cell.add(p2); //here is the barcode number
p1.setTextAlignment(TextAlignment.LEFT).setPadding(0).setFontSize(6).setMarginTop(0).setMarginBottom(0).setMarginLeft(0).setMarginRight(5);
p2.setTextAlignment(TextAlignment.LEFT).setVerticalAlignment(VerticalAlignment.TOP).setPadding(0).setFontSize(6).setMarginTop(0).setMarginBottom(0).setMarginLeft(0).setMarginRight(5);
cell.setHeight(70);
cell.setBorder(null).setVerticalAlignment(VerticalAlignment.TOP).setMarginTop(0).setMarginBottom(0).setMarginLeft(0).setMarginRight(5).setPaddingBottom(0);
return cell;
}
public void manipulatePdf(String dest, String []codigo_BARRA, String []codigo_sistema, String []detalle, String []color, int [] cantidades) throws Exception
{
PdfDocument pdfDoc = new PdfDocument(new PdfWriter(dest));
PageSize pagesize = new PageSize(148, 742);
Document doc = new Document(pdfDoc, PageSize.A8.rotate());
int tabla1Alto =0;
Table table = new Table(UnitValue.createPercentArray(2)).useAllAvailableWidth();
int cantidades_stock = 0;
for(int i=0; i<codigo_BARRA.length; i++)
{
cantidades_stock = cantidades[i];
for(int j=0; j<cantidades_stock; j++)
{
tabla1Alto = (50 * 2) + tabla1Alto;
table.setHeight(tabla1Alto);
String InfoArt = "ARTICLE: "+codigo_sistema[i] +" "+ detalle[i]+" COLOR: "+color[i];
String IMG = System.getProperty("user.home")+"\\SYSTEM_POS\\PRIVATE_PICTURES_ARTICLES\\BARCODES\\BarCode_"+ codigo_BARRA[i] +".png";
//table.addCell(createTextCell());
table.addCell(createImageCell(IMG, InfoArt, codigo_BARRA[i])).setMarginRight(1);
//table.addCell(createTextCell2(codigo_BARRA[i]));
}
}
PageSize pagesize2 = new PageSize(148, tabla1Alto);
Document doc2 = new Document(pdfDoc, PageSize.A8.rotate());
doc2.setMargins(1, 1, 1, 1);
doc2.add(table);
doc2.close();
}
Я использую эту библиотеку для генерации изображения штрих-кода:
-----> barbecue 1.5 beta version
import java.io.File;
import java.io.FileOutputStream;
import net.sourceforge.barbecue.Barcode;
import net.sourceforge.barbecue.BarcodeException;
import net.sourceforge.barbecue.BarcodeFactory;
import net.sourceforge.barbecue.BarcodeImageHandler;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import net.sourceforge.jbarcodebean.JBarcodeBean;
import net.sourceforge.jbarcodebean.model.Interleaved25;
Я использую эту библиотеку для создания PDF с метками
-----> iText 7
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.borders.Border;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Image;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.HorizontalAlignment;
import com.itextpdf.layout.property.TextAlignment;
import com.itextpdf.layout.property.UnitValue;
import com.itextpdf.layout.property.VerticalAlignment;
import com.itextpdf.test.annotations.type.SampleTest;
import java.io.FileNotFoundException;
import java.net.MalformedURLException;
import java.util.logging.Level;
import java.util.logging.Logger;
Как можно создать два столбца в таблице с изображением штрих-кода и текстом по вертикали?