xmlgraphics-batik-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bruce Rindahl" <rind...@lrcwe.com>
Subject RE: rasterize on server
Date Tue, 11 Sep 2007 19:21:06 GMT
I have a button in my SVG file that calls the following script:

--------------------------------------------------------------------
function makePDF() {
	var dom = serializeNode(document.getElementById('printArea'));
	dom = dom.replace('onload="init(evt);"','');
	var postDataObj = new postXMLData('makePDF.php', dom, madePDF);
	postDataObj.postData();
}
--------------------------------------------------------------------

Here my main SVG document has an id of 'print area'.
The current DOM (after the user manipulates it) is copied by the
serializeNode function in line 1.  I then remove the onload function (things
are done in init() that are no longer needed) in line 2.  I then post the
DOM to a php function that creates a PDF on my server in lines 3 and 4.  The
third parameter in line 3 updates a link to the newly created PDF file.

The function serializeNode is:

--------------------------------------------------------------------------
//Serialize node from Martin Honnen - see
http://www.faqts.com/knowledge_base/view.phtml/aid/34646

function serializeNode (node) {
  if (typeof XMLSerializer != 'undefined') {
    var nodeString = new XMLSerializer().serializeToString(node)
    return nodeString;
  }
  else if (typeof node.xml != 'undefined') {
    return node.xml;
  }
  else if (typeof printNode != 'undefined') {
    var nodeString = printNode(node);
//IE+ASV does not escape the '&' in a url string that Batik needs for PDF
conversion
    var re = new RegExp("&","g")
    return nodeString.replace(re,'&amp;');
  }
  else if (typeof Packages != 'undefined') {
    try {
      var stringWriter = new java.io.StringWriter();
      Packages.org.apache.batik.dom.util.DOMUtilities.writeNode(node,
stringWriter);
      return stringWriter.toString();
    }
    catch (e) {
      // might want to handle problem here
      return '';
    }
  }
  else {
    // might want to handle problem here
	alert("No method to serialize node!");
    return '';
  }
}
----------------------------------------------------------------------------

The PHP file makePDF.php is:

-------------------------------------------------------------------------
<?php
set_time_limit(6000);
$post = $HTTP_RAW_POST_DATA;
header("Content-Type: text/xml");
$numbytes = file_put_contents("xxx.svg",$post);
exec("java.exe -jar -Xmx512m batik-rasterizer.jar -m application/pdf -w 1632
-h 1056 xxx.svg");
exec("move xxx.pdf output.pdf");
echo '<g id="output.pdf?'.time().'" />';
?>
--------------------------------------------------------------------------
The result is a new file on the server called output.pdf that is a snapshot
of the users display.

I think there is a parameter available in batik-rasterizer.jar to prevent
the onload stuff I eliminated in Line 2 of the first function.

Bruce


 
-----Original Message-----
From: horstpeter [mailto:ralf.kollosche@thieme.com] 
Sent: Tuesday, September 11, 2007 1:01 PM
To: batik-users@xmlgraphics.apache.org
Subject: rasterize on server


OK, I know a lot of people had the same problem, but reading through forums
for 2 days now didn't help me at all.
I have a basic website with a svg embedded. The SVG has some JS in there for
the user to change the svg. I would love to have a button to export the svg
to a JPEG. 
I already downloaded the batik package and put it on the server, I just
can't find the right way to call the rasterizer.
Thank you so much.
-- 
View this message in context:
http://www.nabble.com/rasterize-on-server-tf4424626.html#a12621425
Sent from the Batik - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org





---------------------------------------------------------------------
To unsubscribe, e-mail: batik-users-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: batik-users-help@xmlgraphics.apache.org


Mime
View raw message