diff --git a/src/main/java/net/sf/mcf2pdf/Main.java b/src/main/java/net/sf/mcf2pdf/Main.java index 67c36e1..8b779c6 100644 --- a/src/main/java/net/sf/mcf2pdf/Main.java +++ b/src/main/java/net/sf/mcf2pdf/Main.java @@ -24,7 +24,6 @@ import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator; -import net.sf.mcf2pdf.mcfelements.util.ImageUtil; import net.sf.mcf2pdf.mcfelements.util.PdfUtil; diff --git a/src/main/java/net/sf/mcf2pdf/Mcf2FoConverter.java b/src/main/java/net/sf/mcf2pdf/Mcf2FoConverter.java index f4b5cf4..91f841c 100644 --- a/src/main/java/net/sf/mcf2pdf/Mcf2FoConverter.java +++ b/src/main/java/net/sf/mcf2pdf/Mcf2FoConverter.java @@ -175,17 +175,28 @@ public void convert(File mcfFile, OutputStream xslFoOut, int dpi, boolean bindin // create XSL-FO document XslFoDocumentBuilder docBuilder = new XslFoDocumentBuilder(); - float pageWidth = albumType.getUsableWidth() / 10.0f * 2; - float pageHeight = albumType.getUsableHeight() / 10.0f; - - // set page master - docBuilder.addPageMaster("default", pageWidth, pageHeight); - - // create master for cover - float coverPageWidth = pageWidth + (albumType.getCoverExtraHorizontal() * 2 + albumType.getSpineWidth(book.getNormalPages())) / 10.0f; - float coverPageHeight = pageHeight + albumType.getCoverExtraVertical() / 10.0f; - - docBuilder.addPageMaster("cover", coverPageWidth, coverPageHeight); + // setting page widths for master pages + int coverPageWidthPX = -1; + int coverPageHeightPX = -1; + int pageWidthPX = -1; + int pageHeightPX = -1; + + for (McfPage p : book.getPages()) { + if (McfPage.FULLCOVER.matcher(p.getType()).matches() && coverPageWidthPX == -1 && coverPageHeightPX == -1) { + coverPageWidthPX = context.toPixel(p.getBundlesize().getWidth() / 10.0f); + coverPageHeightPX = context.toPixel(p.getBundlesize().getHeight() / 10.0f); + } else if (McfPage.CONTENT.matcher(p.getType()).matches()&& pageWidthPX == -1 && pageHeightPX == -1 ) { + pageWidthPX = context.toPixel(p.getBundlesize().getWidth() / 10.0f); + pageHeightPX = context.toPixel(p.getBundlesize().getHeight() / 10.0f); + } + if (coverPageWidthPX != -1 && coverPageHeightPX != -1 && pageWidthPX != -1 && pageHeightPX != -1) { + break; + } + } + + // setting master pages + docBuilder.addPageMaster("cover", coverPageWidthPX, coverPageHeightPX); + docBuilder.addPageMaster("default", pageWidthPX, pageHeightPX); // prepare temporary folder log.debug("Preparing temporary working directory"); @@ -205,7 +216,7 @@ public void convert(File mcfFile, OutputStream xslFoOut, int dpi, boolean bindin if (leftCover != null) { log.info("Rendering cover..."); - currentPage = new BitmapPageBuilder(coverPageWidth, coverPageHeight, context, tempImageDir); + currentPage = new BitmapPageBuilder(coverPageWidthPX, coverPageHeightPX, context, tempImageDir); processDoublePage(leftCover, rightCover, imageDir, false); docBuilder.startFlow("cover"); currentPage.addToDocumentBuilder(docBuilder); @@ -230,7 +241,7 @@ public void convert(File mcfFile, OutputStream xslFoOut, int dpi, boolean bindin // now, process pages as a pair docBuilder.startFlow("default"); log.debug("Starting rendering of " + normalPages.size() + " pages"); - currentPage = new BitmapPageBuilder(pageWidth, pageHeight, context, tempImageDir); + currentPage = new BitmapPageBuilder(pageWidthPX, pageHeightPX, context, tempImageDir); for (int i = 0; i < normalPages.size(); i += 2) { log.info("Rendering pages " + i + "+" + (i+1) + "..."); @@ -239,8 +250,7 @@ public void convert(File mcfFile, OutputStream xslFoOut, int dpi, boolean bindin imageDir, binding); currentPage.addToDocumentBuilder(docBuilder); if (i < normalPages.size() - 2) { - docBuilder.newPage(); - currentPage = new BitmapPageBuilder(pageWidth, pageHeight, context, tempImageDir); + currentPage = new BitmapPageBuilder(pageWidthPX, pageHeightPX, context, tempImageDir); } } @@ -253,7 +263,7 @@ public void convert(File mcfFile, OutputStream xslFoOut, int dpi, boolean bindin private void processDoublePage(McfPage leftPage, McfPage rightPage, File imageDir, boolean addBinding) throws IOException { - // handle packgrounds + // handle backgrounds PageBackground bg = new PageBackground( leftPage == null ? Collections.emptyList() : leftPage.getBackgrounds(), rightPage == null ? Collections.emptyList() : rightPage.getBackgrounds()); @@ -282,9 +292,7 @@ else if (McfArea.TEXTAREA.matcher(a.getAreaType()).matches()) { } if (addBinding) { - currentPage.addDrawable(new PageBinding(resources.getBinding(), - (albumType.getUsableWidth() + albumType.getBleedMargin()) / 10.0f * 2, - (albumType.getUsableHeight() + albumType.getBleedMargin() * 2) / 10.0f)); + currentPage.addDrawable(new PageBinding(resources.getBinding())); } } diff --git a/src/main/java/net/sf/mcf2pdf/mcfelements/McfBundlesize.java b/src/main/java/net/sf/mcf2pdf/mcfelements/McfBundlesize.java new file mode 100644 index 0000000..ec7e594 --- /dev/null +++ b/src/main/java/net/sf/mcf2pdf/mcfelements/McfBundlesize.java @@ -0,0 +1,11 @@ +package net.sf.mcf2pdf.mcfelements; + +public interface McfBundlesize { + + public McfPage getPage(); + + public int getHeight(); + + public int getWidth(); + +} diff --git a/src/main/java/net/sf/mcf2pdf/mcfelements/McfPage.java b/src/main/java/net/sf/mcf2pdf/mcfelements/McfPage.java index 1f39f0f..caebdfc 100644 --- a/src/main/java/net/sf/mcf2pdf/mcfelements/McfPage.java +++ b/src/main/java/net/sf/mcf2pdf/mcfelements/McfPage.java @@ -20,6 +20,8 @@ public interface McfPage { public final static Pattern SPINE = Pattern.compile("SPINE|spine"); public McfFotobook getFotobook(); + + public McfBundlesize getBundlesize(); public List getAreas(); diff --git a/src/main/java/net/sf/mcf2pdf/mcfelements/impl/DigesterConfiguratorImpl.java b/src/main/java/net/sf/mcf2pdf/mcfelements/impl/DigesterConfiguratorImpl.java index a8de5e4..56afd6f 100644 --- a/src/main/java/net/sf/mcf2pdf/mcfelements/impl/DigesterConfiguratorImpl.java +++ b/src/main/java/net/sf/mcf2pdf/mcfelements/impl/DigesterConfiguratorImpl.java @@ -28,6 +28,7 @@ import net.sf.mcf2pdf.mcfelements.McfArea; import net.sf.mcf2pdf.mcfelements.McfBackground; import net.sf.mcf2pdf.mcfelements.McfBorder; +import net.sf.mcf2pdf.mcfelements.McfBundlesize; import net.sf.mcf2pdf.mcfelements.McfClipart; import net.sf.mcf2pdf.mcfelements.McfFotobook; import net.sf.mcf2pdf.mcfelements.McfImage; @@ -100,6 +101,12 @@ public void configureDigester(Digester digester, File mcfFile) digester.addSetTop("fotobook/page", "setFotobook"); DigesterUtil.addSetProperties(digester, "fotobook/page", getSpecialPageAttributes()); digester.addSetNext("fotobook/page", "addPage", McfPage.class.getName()); + + // bundlesize element + digester.addObjectCreate("fotobook/page/bundlesize", getBundlesizeClass()); + digester.addSetTop("fotobook/page/bundlesize", "setPage"); + digester.addSetProperties("fotobook/page/bundlesize"); + digester.addSetNext("fotobook/page/bundlesize", "setBundlesize", McfBundlesize.class.getName()); // background element digester.addObjectCreate("fotobook/page/background", getBackgroundClass()); @@ -228,6 +235,10 @@ protected List getSpecialPageAttributes() { result.add(new String[] { "pagenr", "pageNr" }); return result; } + + protected Class getBundlesizeClass() { + return McfBundlesizeImpl.class; + } protected Class getBackgroundClass() { return McfBackgroundImpl.class; diff --git a/src/main/java/net/sf/mcf2pdf/mcfelements/impl/McfBundlesizeImpl.java b/src/main/java/net/sf/mcf2pdf/mcfelements/impl/McfBundlesizeImpl.java new file mode 100644 index 0000000..e7ccfc4 --- /dev/null +++ b/src/main/java/net/sf/mcf2pdf/mcfelements/impl/McfBundlesizeImpl.java @@ -0,0 +1,39 @@ +package net.sf.mcf2pdf.mcfelements.impl; + +import net.sf.mcf2pdf.mcfelements.McfBundlesize; +import net.sf.mcf2pdf.mcfelements.McfPage; + +public class McfBundlesizeImpl implements McfBundlesize { + + private McfPage page; + private int height; + private int width; + + @Override + public McfPage getPage() { + return page; + } + + public void setPage(McfPage page) { + this.page = page; + } + + @Override + public int getHeight() { + return height; + } + + public void setHeight(int height) { + this.height = height; + } + + @Override + public int getWidth() { + return width; + } + + public void setWidth(int width) { + this.width = width; + } + +} diff --git a/src/main/java/net/sf/mcf2pdf/mcfelements/impl/McfPageImpl.java b/src/main/java/net/sf/mcf2pdf/mcfelements/impl/McfPageImpl.java index cd7bda8..7ddb96a 100644 --- a/src/main/java/net/sf/mcf2pdf/mcfelements/impl/McfPageImpl.java +++ b/src/main/java/net/sf/mcf2pdf/mcfelements/impl/McfPageImpl.java @@ -14,6 +14,8 @@ public class McfPageImpl implements McfPage { private McfFotobook fotobook; + private McfBundlesize bundlesize; + private int pageNr; private String type; @@ -62,4 +64,13 @@ public void setType(String type) { this.type = type; } + @Override + public McfBundlesize getBundlesize() { + return bundlesize; + } + + public void setBundlesize(McfBundlesize bundlesize) { + this.bundlesize = bundlesize; + } + } diff --git a/src/main/java/net/sf/mcf2pdf/mcfelements/util/XslFoDocumentBuilder.java b/src/main/java/net/sf/mcf2pdf/mcfelements/util/XslFoDocumentBuilder.java index d798a2b..c652f96 100644 --- a/src/main/java/net/sf/mcf2pdf/mcfelements/util/XslFoDocumentBuilder.java +++ b/src/main/java/net/sf/mcf2pdf/mcfelements/util/XslFoDocumentBuilder.java @@ -36,12 +36,11 @@ public XslFoDocumentBuilder() { document.addContent(e); } - public void addPageMaster(String name, float widthMM, float heightMM) { + public void addPageMaster(String name, int widthPX, int heightPX) { Element m = new Element("simple-page-master", ns); m.setAttribute("master-name", name); - m.setAttribute("page-width", widthMM + "mm"); - m.setAttribute("page-height", heightMM + "mm"); - m.setAttribute("margin", "0mm"); + m.setAttribute("page-width", widthPX + "px"); + m.setAttribute("page-height", heightPX + "px"); Element body = new Element("region-body", ns); m.addContent(body); @@ -62,7 +61,6 @@ public void startFlow(String masterName) { Element ps = new Element("page-sequence", ns); ps.setAttribute("master-reference", masterName); - ps.setAttribute("id", masterName); Element f = new Element("flow", ns); f.setAttribute("flow-name", "xsl-region-body"); ps.addContent(f); @@ -80,9 +78,9 @@ public void newPage() { Element e = new Element("block", ns); e.setAttribute("break-after", "page"); - e.setAttribute("padding", "0mm"); - e.setAttribute("margin", "0mm"); - e.setAttribute("border-width", "0mm"); + e.setAttribute("padding", "0px"); + e.setAttribute("margin", "0px"); + e.setAttribute("border-width", "0px"); flow.addContent(e); } @@ -94,28 +92,18 @@ public Namespace getNamespace() { return ns; } - public void addPageElement(Element element, float widthMM, float heightMM) { + public void addPageElement(String imgSource) { if (flow == null) throw new IllegalStateException("Please call startFlow() first"); // create block container Element bc = new Element("block-container",ns); - bc.setAttribute("absolute-position", "absolute"); - bc.setAttribute("left", "0mm"); - bc.setAttribute("top", "0mm"); - bc.setAttribute("width", widthMM + "mm"); - bc.setAttribute("height", heightMM + "mm"); - - // create block - Element b = new Element("block", ns); - b.setAttribute("margin", "0mm"); - b.setAttribute("padding", "0mm"); - b.setAttribute("border-width", "0mm"); - bc.addContent(b); - - b.addContent(element); + bc.setAttribute("background-image", imgSource); + bc.setAttribute("width", "100%"); + bc.setAttribute("height", "100%"); + bc.addContent(new Element("block", ns)); flow.addContent(bc); - } + } } diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/BitmapPageBuilder.java b/src/main/java/net/sf/mcf2pdf/pagebuild/BitmapPageBuilder.java index d4336c7..839a62b 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/BitmapPageBuilder.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/BitmapPageBuilder.java @@ -23,7 +23,6 @@ import net.sf.mcf2pdf.mcfelements.util.XslFoDocumentBuilder; -import org.jdom.Element; import org.jdom.Namespace; @@ -34,9 +33,9 @@ public class BitmapPageBuilder extends AbstractPageBuilder { private PageRenderContext context; - private float widthMM; + private int widthPX; - private float heightMM; + private int heightPX; private static final Comparator zComp = new Comparator() { @Override @@ -45,10 +44,10 @@ public int compare(PageDrawable p1, PageDrawable p2) { } }; - public BitmapPageBuilder(float widthMM, float heightMM, + public BitmapPageBuilder(int widthPX, int heightPX, PageRenderContext context, File tempImageDir) throws IOException { - this.widthMM = widthMM; - this.heightMM = heightMM; + this.widthPX = widthPX; + this.heightPX = heightPX; this.context = context; this.tempImageDir = tempImageDir; } @@ -62,8 +61,7 @@ public void addToDocumentBuilder(XslFoDocumentBuilder docBuilder) context.getLog().debug("Creating full page image from page elements"); - BufferedImage img = new BufferedImage(context.toPixel(widthMM), - context.toPixel(heightMM), BufferedImage.TYPE_INT_ARGB); + BufferedImage img = new BufferedImage(widthPX, heightPX, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = img.createGraphics(); g2d.setColor(Color.white); g2d.fillRect(0, 0, img.getWidth(), img.getHeight()); @@ -74,7 +72,7 @@ public void addToDocumentBuilder(XslFoDocumentBuilder docBuilder) Point offset = new Point(); try { - BufferedImage pdImg = pd.renderAsBitmap(context, offset); + BufferedImage pdImg = pd.renderAsBitmap(context, offset, widthPX, heightPX); if (pdImg != null) g2d.drawImage(pdImg, left + offset.x, top + offset.y, null); } @@ -84,11 +82,11 @@ public void addToDocumentBuilder(XslFoDocumentBuilder docBuilder) } } - docBuilder.addPageElement(createXslFoElement(img, docBuilder.getNamespace()), widthMM, heightMM); + docBuilder.addPageElement(createImgFoElement(img, docBuilder.getNamespace())); g2d.dispose(); } - private Element createXslFoElement(BufferedImage img, Namespace xslFoNs) throws IOException { + private String createImgFoElement(BufferedImage img, Namespace xslFoNs) throws IOException { // save bitmap to file File f; int i = 1; @@ -103,14 +101,10 @@ private Element createXslFoElement(BufferedImage img, Namespace xslFoNs) throws g2d.dispose(); ImageIO.write(imgPlain, "jpeg", f); - - Element eg = new Element("external-graphic", xslFoNs); - eg.setAttribute("src", f.getAbsolutePath()); - eg.setAttribute("content-width", widthMM + "mm"); - eg.setAttribute("content-height", heightMM + "mm"); + String src = f.getAbsolutePath(); f.deleteOnExit(); - return eg; + return src; } diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/PageBackground.java b/src/main/java/net/sf/mcf2pdf/pagebuild/PageBackground.java index 0234619..ba12e55 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/PageBackground.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/PageBackground.java @@ -14,7 +14,6 @@ import net.sf.mcf2pdf.mcfelements.McfBackground; import net.sf.mcf2pdf.mcfelements.util.ImageUtil; -import net.sf.mcf2pdf.mcfglobals.McfAlbumType; public class PageBackground implements PageDrawable { @@ -41,17 +40,11 @@ public void renderAsSvgElement(Writer writer, PageRenderContext context) throws @Override public BufferedImage renderAsBitmap(PageRenderContext context, - Point drawOffsetPixels) throws IOException { + Point drawOffsetPixels, int widthPX, int heightPX) throws IOException { File fLeft = extractBackground(leftBg, context); File fRight = extractBackground(rightBg, context); - McfAlbumType albumType = context.getAlbumType(); - - float widthMM = (albumType.getUsableWidth() + albumType.getBleedMargin()) / 10.0f * 2; - float heightMM = (albumType.getUsableHeight() + albumType.getBleedMargin() * 2) / 10.0f; - - BufferedImage img = new BufferedImage(context.toPixel(widthMM), - context.toPixel(heightMM), BufferedImage.TYPE_INT_ARGB); + BufferedImage img = new BufferedImage(widthPX, heightPX, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = img.createGraphics(); g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BICUBIC); diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/PageBinding.java b/src/main/java/net/sf/mcf2pdf/pagebuild/PageBinding.java index d5619b5..31107ba 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/PageBinding.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/PageBinding.java @@ -17,14 +17,8 @@ public class PageBinding implements PageDrawable { private BufferedImage bindingImg; - private float pageWidthMM; - - private float pageHeightMM; - - public PageBinding(File fBindingImg, float pageWidthMM, float pageHeightMM) throws IOException { + public PageBinding(File fBindingImg) throws IOException { bindingImg = ImageUtil.readImage(fBindingImg); - this.pageWidthMM = pageWidthMM; - this.pageHeightMM = pageHeightMM; } @Override @@ -33,27 +27,25 @@ public boolean isVectorGraphic() { } @Override - public void renderAsSvgElement(Writer writer, PageRenderContext context) throws IOException { + public void renderAsSvgElement(Writer writer, PageRenderContext context) throws IOException { throw new UnsupportedOperationException(); } @Override public BufferedImage renderAsBitmap(PageRenderContext context, - Point drawOffsetPixels) throws IOException { + Point drawOffsetPixels, int widthPX, int heightPX) throws IOException { context.getLog().debug("Rendering page binding"); - float widthMM = pageWidthMM / 16.0f; - - int width = context.toPixel(widthMM); - int height = context.toPixel(pageHeightMM); + + int width = Math.round(widthPX / 16.0f); - BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB); + BufferedImage img = new BufferedImage(width, heightPX, BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = img.createGraphics(); g2d.setRenderingHint(RenderingHints.KEY_ALPHA_INTERPOLATION, RenderingHints.VALUE_ALPHA_INTERPOLATION_QUALITY); - g2d.drawImage(bindingImg, 0, 0, width, height, 0, 0, bindingImg.getWidth(), bindingImg.getHeight(), null); + g2d.drawImage(bindingImg, 0, 0, width, heightPX, 0, 0, bindingImg.getWidth(), bindingImg.getHeight(), null); g2d.dispose(); - drawOffsetPixels.x = context.toPixel((pageWidthMM - widthMM) / 2.0f); + drawOffsetPixels.x = Math.round((widthPX - width) / 2.0f); drawOffsetPixels.y = 0; return img; diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/PageClipart.java b/src/main/java/net/sf/mcf2pdf/pagebuild/PageClipart.java index cb7729c..78e3d22 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/PageClipart.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/PageClipart.java @@ -47,7 +47,7 @@ public void renderAsSvgElement(Writer writer, PageRenderContext context) throws @Override public BufferedImage renderAsBitmap(PageRenderContext context, - Point drawOffsetPixels) throws IOException { + Point drawOffsetPixels, int widthPX, int heightPX) throws IOException { File f = context.getClipart(clipart.getUniqueName()); if (f == null) { context.getLog().warn("Clipart not found: " + clipart.getUniqueName()); diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/PageDrawable.java b/src/main/java/net/sf/mcf2pdf/pagebuild/PageDrawable.java index 82b9914..75bdde8 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/PageDrawable.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/PageDrawable.java @@ -60,7 +60,7 @@ public interface PageDrawable { * @throws IOException If any I/O related problem occurs, e.g. reading an * image file. */ - public BufferedImage renderAsBitmap(PageRenderContext context, Point drawOffsetPixels) throws IOException; + public BufferedImage renderAsBitmap(PageRenderContext context, Point drawOffsetPixels, int widthPX, int heightPX) throws IOException; /** * Returns the Z position of this drawable. This is mostly indicated by the diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/PageImage.java b/src/main/java/net/sf/mcf2pdf/pagebuild/PageImage.java index abf6ba1..e200889 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/PageImage.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/PageImage.java @@ -59,7 +59,7 @@ public void renderAsSvgElement(Writer writer, PageRenderContext context) throws } @Override - public BufferedImage renderAsBitmap(PageRenderContext context, Point drawOffsetPixels) throws IOException { + public BufferedImage renderAsBitmap(PageRenderContext context, Point drawOffsetPixels, int widthPX, int heightPX) throws IOException { int widthPixel = context.toPixel(image.getArea().getWidth() / 10.0f); int heightPixel = context.toPixel(image.getArea().getHeight() / 10.0f); if (image.getFileName() == null || "".equals(image.getFileName())) { diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/PageImageBackground.java b/src/main/java/net/sf/mcf2pdf/pagebuild/PageImageBackground.java index b7d2575..0c956a1 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/PageImageBackground.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/PageImageBackground.java @@ -25,8 +25,8 @@ public PageImageBackground(McfImageBackground image) { @Override public BufferedImage renderAsBitmap(PageRenderContext context, - Point drawOffsetPixels) throws IOException { - BufferedImage img = super.renderAsBitmap(context, drawOffsetPixels); + Point drawOffsetPixels, int widthPX, int heightPX) throws IOException { + BufferedImage img = super.renderAsBitmap(context, drawOffsetPixels, widthPX, heightPX); if (McfImageBackground.RIGHT_OR_BOTTOM.equals(image.getBackgroundPosition())) { McfAlbumType albumType = context.getAlbumType(); drawOffsetPixels.x += context.toPixel(albumType.getUsableWidth() / 10.0f + diff --git a/src/main/java/net/sf/mcf2pdf/pagebuild/PageText.java b/src/main/java/net/sf/mcf2pdf/pagebuild/PageText.java index 1709b91..cf1a980 100644 --- a/src/main/java/net/sf/mcf2pdf/pagebuild/PageText.java +++ b/src/main/java/net/sf/mcf2pdf/pagebuild/PageText.java @@ -162,7 +162,7 @@ public void renderAsSvgElement(Writer writer, PageRenderContext context) throws @Override public BufferedImage renderAsBitmap(PageRenderContext context, - Point drawOffsetPixels) throws IOException { + Point drawOffsetPixels, int widthPX, int heightPX) throws IOException { context.getLog().debug("Rendering text"); int width = context.toPixel(text.getArea().getWidth() / 10.0f); int height = context.toPixel(text.getArea().getHeight() / 10.0f);