Это старая версия документа!
т.к. пакет FX выпилили в отдельный модуль, то и для сборки/запуска нужно еще что то использовать, находится все в OpenJFX, по аналогии с JDK скачивается/ставится
Вроде как можно с помощью мавена включить зависимости в состав пакета, но что то не получается пока, включает все, но не запускается
Второй вариант, это таскать с собой эту jdk, указывая путь к ней при запуске, так работает
java --module-path path/to/javafx/lib --add-modules javafx.controls,javafx.fxml -jar myproject.jar
git
pow.xml
(...) <dependencies> <dependency> <groupId>org.openjfx</groupId> <artifactId>javafx-controls</artifactId> <version>20.0.1</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.openjfx</groupId> <artifactId>javafx-maven-plugin</artifactId> <version>0.0.8</version> <configuration> <mainClass>com.sakeep.Launcher</mainClass> </configuration> </plugin> </plugins> </build> (...)
maven clean compile package install
На выходе файл 3кб, ест-но ничего не содержит в себе. и нихрена не запускается, даже на той же машине
возможно его надо мавеном запускать, но с ide-ешным хз как его там
(...) <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <archive> <manifest> <mainClass>com.sakeep.Launcher</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> (...)
На выходе уже файл 8мб, содержит в себе все классы, запускается на рабочей машине, но не стартует на другой, ошибки «unamed module..»
Image img = (откуда нибудь берем Image); BufferedImage bImage = new BufferedImage(img.getWidth(null)+20, img.getHeight(null)+20, BufferedImage.TYPE_INT_ARGB); Graphics2D bGr = bImage.createGraphics(); bGr.drawImage(img, 0, 0, null); bGr.dispose(); File outputfile = new File("itext_img.png"); ImageIO.write(bImage, "png", outputfile);
Для работы с pdf есть библиотека itext дока
Работать удобно, можно ШК организовать, но нет печати, для этого нашелся пакет Apache PDFBox
Генерация ШК и сохранение
com.itextpdf.text.Document document = new com.itextpdf.text.Document(); PdfWriter pdfWriter = PdfWriter.getInstance(document, new FileOutputStream("tmp/itext_probe.pdf")); document.setPageSize(new com.itextpdf.text.Rectangle(58,40)); document.setMargins(2,2,2,2); document.open(); PdfContentByte pdfContentByte = pdfWriter.getDirectContent(); Barcode128 barcode128 = new Barcode128(); barcode128.setCode("myString"); barcode128.setCodeType(Barcode128.CODE128); com.itextpdf.text.Image code128Image = barcode128.createImageWithBarcode(pdfContentByte, null, null); code128Image.scaleToFit(55,40); code128Image.setAlignment(com.itextpdf.text.Image.ALIGN_MIDDLE); document.add(code128Image); document.close();
Печать
PDDocument pdfDoc = PDDocument.load(new File("tmp/itext_probe.pdf")); PrintService[] printServices = PrintServiceLookup.lookupPrintServices(null, null); PrinterJob job = PrinterJob.getPrinterJob(); job.setPageable(new PDFPageable(pdfDoc)); job.setPrintService(printServices[0]); job.print();