]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.document.linking.ui/src/org/simantics/document/linking/report/pdf/PDFPage.java
Externalize org.simantics.document.linking.ui
[simantics/platform.git] / bundles / org.simantics.document.linking.ui / src / org / simantics / document / linking / report / pdf / PDFPage.java
index 334b1cb59e5d95983926f00ee5af830d21bdf2e4..fc0d4a0d18be7875d247311f8c9fa65cd0053523 100644 (file)
-package org.simantics.document.linking.report.pdf;\r
-\r
-import java.awt.Font;\r
-import java.awt.FontMetrics;\r
-import java.awt.Graphics2D;\r
-import java.awt.font.FontRenderContext;\r
-import java.io.File;\r
-import java.io.FileOutputStream;\r
-\r
-import com.lowagie.text.Document;\r
-import com.lowagie.text.Rectangle;\r
-import com.lowagie.text.pdf.PdfContentByte;\r
-import com.lowagie.text.pdf.PdfTemplate;\r
-import com.lowagie.text.pdf.PdfWriter;\r
-\r
-public class PDFPage {\r
-       public PDFPageStream stream;\r
-       public Graphics2D g2d;\r
-       public Document document;\r
-       public PdfWriter writer;\r
-       public File tempFile;\r
-       public PdfContentByte cb;\r
-       public PdfTemplate template = null;\r
-       public Font font;\r
-       \r
-       FontRenderContext frc;\r
-       FontMetrics fm;\r
-       \r
-       int currentPixel = 0;\r
-       int currentLine = 0;\r
-       int availableLines = 0;\r
-       \r
-       \r
-       public PDFPage(PDFPageStream stream) throws Exception{\r
-               this.stream = stream;\r
-               Rectangle pageSize = stream.getPageSize();\r
-               document = new Document(pageSize);\r
-               tempFile = File.createTempFile("ReportGenerator", ".pdf");\r
-               writer = PdfWriter.getInstance(document, new FileOutputStream(tempFile));\r
-               document.open();\r
-               this.cb = writer.getDirectContent();\r
-\r
-        \r
-        writer.flush();\r
-               template = cb.createTemplate(pageSize.getWidth(), pageSize.getHeight());\r
-               g2d = template.createGraphics(pageSize.getWidth(), pageSize.getHeight());\r
-               g2d.translate(stream.marginLeft, stream.marginTop);\r
-        g2d.setClip(0, 0, stream.contentWidth, stream.contentHeight);\r
-        currentPixel = 0;\r
-        currentLine = 1;\r
-       \r
-        setFont(stream.getDefaultFont());\r
-       }\r
-       \r
-       protected int getLineHeight() {\r
-               return fm.getHeight();\r
-       }\r
-       \r
-       public boolean isOpen() {\r
-               return template != null;\r
-       }\r
-       \r
-       public void setFont(Font font) {\r
-               this.font = font;\r
-               g2d.setFont(font);\r
-        fm = g2d.getFontMetrics();\r
-        frc = new FontRenderContext(g2d.getTransform(), true, true);\r
-        estimateAvailableLines();\r
-       }\r
-       \r
-       protected void estimateAvailableLines() {\r
-                availableLines = (int)Math.floor((stream.contentHeight-currentPixel)/getLineHeight());\r
-       }\r
-       \r
-       public Font getFont() {\r
-               return font;\r
-       }\r
-       \r
-       public void writeLine(String line) throws Exception{\r
-               writeLine(line, 0);\r
-       }\r
-       \r
-       public void writeLine(String line, int x) throws Exception{\r
-               g2d.drawString(line, x, currentPixel+getLineHeight());\r
-               currentLine++;\r
-               availableLines--;\r
-               currentPixel += getLineHeight();\r
-               stream.checkNextPage();\r
-       }\r
-       \r
-       public void close() {\r
-               g2d.dispose();\r
-               cb.addTemplate(template, 0, 0);\r
-        template = null;\r
-        \r
-               document.close();\r
-               if (writer != null)\r
-                       writer.close();\r
-               document = null;\r
-               writer = null;\r
-               cb = null;\r
-               g2d = null;\r
-       }\r
-}\r
+package org.simantics.document.linking.report.pdf;
+
+import java.awt.Font;
+import java.awt.FontMetrics;
+import java.awt.Graphics2D;
+import java.awt.font.FontRenderContext;
+import java.io.File;
+import java.io.FileOutputStream;
+
+import com.lowagie.text.Document;
+import com.lowagie.text.Rectangle;
+import com.lowagie.text.pdf.PdfContentByte;
+import com.lowagie.text.pdf.PdfTemplate;
+import com.lowagie.text.pdf.PdfWriter;
+
+public class PDFPage {
+       public PDFPageStream stream;
+       public Graphics2D g2d;
+       public Document document;
+       public PdfWriter writer;
+       public File tempFile;
+       public PdfContentByte cb;
+       public PdfTemplate template = null;
+       public Font font;
+       
+       FontRenderContext frc;
+       FontMetrics fm;
+       
+       int currentPixel = 0;
+       int currentLine = 0;
+       int availableLines = 0;
+       
+       
+       public PDFPage(PDFPageStream stream) throws Exception{
+               this.stream = stream;
+               Rectangle pageSize = stream.getPageSize();
+               document = new Document(pageSize);
+               tempFile = File.createTempFile("ReportGenerator", ".pdf"); //$NON-NLS-1$ //$NON-NLS-2$
+               writer = PdfWriter.getInstance(document, new FileOutputStream(tempFile));
+               document.open();
+               this.cb = writer.getDirectContent();
+
+        
+        writer.flush();
+               template = cb.createTemplate(pageSize.getWidth(), pageSize.getHeight());
+               g2d = template.createGraphics(pageSize.getWidth(), pageSize.getHeight());
+               g2d.translate(stream.marginLeft, stream.marginTop);
+        g2d.setClip(0, 0, stream.contentWidth, stream.contentHeight);
+        currentPixel = 0;
+        currentLine = 1;
+       
+        setFont(stream.getDefaultFont());
+       }
+       
+       protected int getLineHeight() {
+               return fm.getHeight();
+       }
+       
+       public boolean isOpen() {
+               return template != null;
+       }
+       
+       public void setFont(Font font) {
+               this.font = font;
+               g2d.setFont(font);
+        fm = g2d.getFontMetrics();
+        frc = new FontRenderContext(g2d.getTransform(), true, true);
+        estimateAvailableLines();
+       }
+       
+       protected void estimateAvailableLines() {
+                availableLines = (int)Math.floor((stream.contentHeight-currentPixel)/getLineHeight());
+       }
+       
+       public Font getFont() {
+               return font;
+       }
+       
+       public void writeLine(String line) throws Exception{
+               writeLine(line, 0);
+       }
+       
+       public void writeLine(String line, int x) throws Exception{
+               g2d.drawString(line, x, currentPixel+getLineHeight());
+               currentLine++;
+               availableLines--;
+               currentPixel += getLineHeight();
+               stream.checkNextPage();
+       }
+       
+       public void close() {
+               g2d.dispose();
+               cb.addTemplate(template, 0, 0);
+        template = null;
+        
+               document.close();
+               if (writer != null)
+                       writer.close();
+               document = null;
+               writer = null;
+               cb = null;
+               g2d = null;
+       }
+}