--- /dev/null
+
+// https://www.java-forums.org/javafx/95904-illegalargumentexception-bad-margins-when-printing-dymo-labelwriter-450-a.html
+
+import javafx.print.*;
+import javafx.scene.web.WebEngine;
+import javafx.collections.ObservableSet;
+import javafx.collections.SetChangeListener;
+
+import javafx.scene.Node;
+import javafx.scene.shape.Shape;
+import javafx.scene.shape.Circle;
+
+import javax.print.PrintService;
+import javax.print.PrintServiceLookup;
+import javax.print.attribute.Attribute;
+import javax.print.attribute.AttributeSet;
+import javax.print.attribute.PrintRequestAttributeSet;
+import javax.print.attribute.standard.Media;
+import javax.print.attribute.standard.OrientationRequested;
+
+import java.lang.IllegalArgumentException;
+import java.io.StringWriter;
+import java.io.PrintWriter;
+
+public class Test {
+
+ public static void main(String[] args) {
+ Printer printer = Printer.getDefaultPrinter();
+ System.out.printf("Selected: %s\n", printer.getName());
+
+ Node node = new Circle(2,2,2); //something to print
+ try {
+
+ PrinterAttributes attributes = printer.getPrinterAttributes();
+ System.out.printf("\nLabel Size: %g, %g(%s)\n",
+ attributes.getDefaultPaper().getWidth(), attributes.getDefaultPaper().getHeight(),
+ attributes.getDefaultPaper().toString());
+
+ Paper label = attributes.getDefaultPaper();
+ PageOrientation orientation = printer.getPrinterAttributes().getDefaultPageOrientation();
+ PageLayout layout = printer.createPageLayout(label, orientation, Printer.MarginType.HARDWARE_MINIMUM);
+ System.out.printf("\nPageLayout: %s\n", layout.toString());
+
+ PrinterJob printerJob = PrinterJob.createPrinterJob();
+
+ boolean success = printerJob.printPage(layout, node);
+ System.out.println("printerJob.printPage : " + success);
+
+ if(success) {
+ printerJob.endJob();
+ }
+ } catch(IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+}