|
@@ -1,4 +1,4 @@
|
|
-import abstract_syntax
|
|
|
|
|
|
+from xopp2py import abstract_syntax
|
|
|
|
|
|
def parseFile(path) -> abstract_syntax.XournalFile:
|
|
def parseFile(path) -> abstract_syntax.XournalFile:
|
|
"""Parse a .xopp file."""
|
|
"""Parse a .xopp file."""
|
|
@@ -14,7 +14,7 @@ def parseFile(path) -> abstract_syntax.XournalFile:
|
|
elif element.tag == "stroke":
|
|
elif element.tag == "stroke":
|
|
elements.append(
|
|
elements.append(
|
|
abstract_syntax.Stroke(
|
|
abstract_syntax.Stroke(
|
|
- values=element.text, attributes=element.attrib))
|
|
|
|
|
|
+ text=element.text, attributes=element.attrib))
|
|
else:
|
|
else:
|
|
raise Error("Unsupported tag:" + element.tag)
|
|
raise Error("Unsupported tag:" + element.tag)
|
|
elif event == "end":
|
|
elif event == "end":
|
|
@@ -29,10 +29,9 @@ def parseFile(path) -> abstract_syntax.XournalFile:
|
|
for (event, element) in context:
|
|
for (event, element) in context:
|
|
if event == "start":
|
|
if event == "start":
|
|
if element.tag == "background":
|
|
if element.tag == "background":
|
|
- background = abstract_syntax.Background(
|
|
|
|
- type=element.get("type"),
|
|
|
|
- color=element.get("color"),
|
|
|
|
- style=element.get("plain"))
|
|
|
|
|
|
+ background_type = element.get("type")
|
|
|
|
+ background_color = element.get("color")
|
|
|
|
+ background_style = element.get("style")
|
|
elif element.tag == "layer":
|
|
elif element.tag == "layer":
|
|
layers.append(parseLayer(context))
|
|
layers.append(parseLayer(context))
|
|
else:
|
|
else:
|
|
@@ -42,7 +41,9 @@ def parseFile(path) -> abstract_syntax.XournalFile:
|
|
return abstract_syntax.Page(
|
|
return abstract_syntax.Page(
|
|
width=width,
|
|
width=width,
|
|
height=height,
|
|
height=height,
|
|
- background=background,
|
|
|
|
|
|
+ background_type=background_type,
|
|
|
|
+ background_color=background_color,
|
|
|
|
+ background_style=background_style,
|
|
layers=layers)
|
|
layers=layers)
|
|
|
|
|
|
def parseXournal(context):
|
|
def parseXournal(context):
|
|
@@ -56,7 +57,10 @@ def parseFile(path) -> abstract_syntax.XournalFile:
|
|
title = element.text
|
|
title = element.text
|
|
elif element.tag == "preview":
|
|
elif element.tag == "preview":
|
|
import base64
|
|
import base64
|
|
- preview = base64.b64decode(element.text)
|
|
|
|
|
|
+ if element.text != None:
|
|
|
|
+ preview = base64.b64decode(element.text)
|
|
|
|
+ else:
|
|
|
|
+ preview = None
|
|
elif element.tag == "page":
|
|
elif element.tag == "page":
|
|
pages.append(parsePage(element, context))
|
|
pages.append(parsePage(element, context))
|
|
else:
|
|
else:
|
|
@@ -70,6 +74,8 @@ def parseFile(path) -> abstract_syntax.XournalFile:
|
|
pages=pages)
|
|
pages=pages)
|
|
|
|
|
|
import gzip
|
|
import gzip
|
|
|
|
+ # with gzip.open(path, mode='rt') as f:
|
|
|
|
+ # print(f.read())
|
|
with gzip.open(path, mode='rt') as f:
|
|
with gzip.open(path, mode='rt') as f:
|
|
from xml.etree import ElementTree
|
|
from xml.etree import ElementTree
|
|
context = ElementTree.iterparse(f, events=["start", "end"])
|
|
context = ElementTree.iterparse(f, events=["start", "end"])
|