2016-05-04 17 views
7

कुछ हफ्ते पहले का अनुरोध किया, यह पूरी तरह मेरी एसवीजी काम कर रहा था, लेकिन किसी भी तरह यह काम करना बंद कर और मैं कारण पता नहीं क्योंकि त्रुटि निकाल दिया पर सर्वर सहायक नहीं था। यह तब होता है जब मैं अपने पीडीएफ के लिए एसवीजी फ़ाइल हस्तांतरण:एसवीजी बाटिक रूट तत्व नाम स्थान से मेल नहीं खाता

Root element namespace does not match that requested: 
Requested: http://www.w3.org/2000/svg 
Found: null. Stacktrace follows: 
org.apache.batik.bridge.BridgeException: Root element namespace does not match that requested: 
Requested: http://www.w3.org/2000/svg 
Found: null 
    at org.apache.batik.bridge.BridgeContext.getReferencedNode(BridgeContext.java:780) 
    at org.apache.batik.bridge.BridgeContext.getReferencedElement(BridgeContext.java:796) 
    at org.apache.batik.bridge.CSSUtilities.convertClipPath(CSSUtilities.java:719) 
    at org.apache.batik.bridge.AbstractGraphicsNodeBridge.buildGraphicsNode(AbstractGraphicsNodeBridge.java:146) 
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:224) 
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) 
    at org.apache.batik.bridge.GVTBuilder.buildGraphicsNode(GVTBuilder.java:219) 
    at org.apache.batik.bridge.GVTBuilder.buildComposite(GVTBuilder.java:171) 
    at org.apache.batik.bridge.GVTBuilder.build(GVTBuilder.java:82) 
    at net.sf.jasperreports.renderers.BatikRenderer.ensureSvg(BatikRenderer.java:192) 
    at net.sf.jasperreports.renderers.BatikRenderer.getDimension(BatikRenderer.java:141) 
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1351) 
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:774) 
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:738) 
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:616) 
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:364) 
    at com.scacp.operation.MonitoringWellController$_closure13.doCall(MonitoringWellController.groovy:749) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:745) 

मैं नहीं इसका क्या मतलब करते हैं, मेरी एक्सएमएल svg (सत्यापनकर्ता वेबसाइट पर) मान्य कोड है। मैं इस तरह लिख रहा हूँ:

file.write('<?xml version="1.0" encoding="UTF-8"?> \n' 
+ '<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> \n' 
+ '<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="705px" height="1000px" viewBox="0 0 705 1000" enable-background="new 0 0 705 1000" xml:space="preserve"> \n' 
+ svgimage + '\n' 
+ '</svg>'); 

चर svgimage आदि g का एक समूह, defs, text, images, (वास्तव में बड़ी, लाइनों के 1k की तरह)

उत्तर

0

मैं बहुत काम किया था + 1k मेरी एक्सएमएल पर लाइनों के से अधिक कारणों का पता लगाने और यह एक टैग है कि बनाया एसवीजी और w3 मान्यता प्राप्त नहीं किया था, जो clipPath और clip-path है और उन्हें हटाने के द्वारा है, पूरी तरह से काम करता है :

<clipPath id="_ABSTRACT_RENDERER_ID_0"> //removed 
... 
</clipPath> 

<g clip-path="url(http://mypage.com/344#_ABSTRACT_RENDERER_ID_0)"> //remove the attribute clip-path 
... 
</g> 

किसी तरह, w3 फ्लॉप बस इस को हटाने के द्वारा url(...) मान्यता प्राप्त है, यह काम करता है। और यह अजीब बात है, यह हमेशा वहाँ था।

0

मैं इस पर नहीं सुझाव दे रहा हूँ है कुछ बिंदु पर पीडीएफ काम करने के लिए स्थानांतरण किया और फिर अचानक विफल - पूरी तरह से समस्या को समझने।

दस्तावेज़ प्रकार में घोषणा: w3.org सिस्टम पहचानकर्ता में 'फ्लैट' डीटीडी का उपयोग करने का उल्लेख करता है, जो एकाधिक फ़ाइलों के बजाय एक एकल फ़्लैटेड डीटीडी है।

w3.org - SVG NampeSpace, Public Identifier and System Identifier :

"ध्यान दें कि DTD सिस्टम पहचानकर्ता में सूचीबद्ध एक आधुनीकीकरण DTD है (यानी इसकी सामग्री से अधिक से अधिक फ़ाइलों में फैले हुए हैं), जिसका अर्थ है एक सत्यापनकर्ता करने के क्रम में एक से अधिक मॉड्यूल लाने के लिए हो सकता है मान्य। इस कारण से, वहाँ एक भी चपटा उपलब्ध DTD कि एसवीजी 1.1 modularized DTD से मेल खाती है है। यह http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-flat.dtd में पाया जा सकता। "

संबंधित मुद्दे