From 2227f2916b62488ff6a302dcb70848bbc719d60f Mon Sep 17 00:00:00 2001
From: Kazuki Suzuki Przyborowski <kazuki.przyborowski@gmail.com>
Date: Fri, 22 Nov 2024 18:10:32 -0600
Subject: [PATCH] Small update

---
 upcean/encode/binary.py      |   2 ++
 upcean/encode/codabar.py     |   2 +-
 upcean/encode/code11.py      |   2 +-
 upcean/encode/code128.py     |   2 +-
 upcean/encode/code32.py      |   2 +-
 upcean/encode/code39.py      |   4 ++--
 upcean/encode/code93.py      |   4 ++--
 upcean/encode/ean13.py       |   2 +-
 upcean/encode/ean2.py        |   2 +-
 upcean/encode/ean5.py        |   2 +-
 upcean/encode/ean8.py        |   2 +-
 upcean/encode/itf.py         |   2 +-
 upcean/encode/itf14.py       |   2 +-
 upcean/encode/msi.py         |   2 +-
 upcean/encode/plessey.py     |   2 +-
 upcean/encode/stf.py         |   2 +-
 upcean/encode/upca.py        |   4 ++--
 upcean/encode/upcavar.py     |   4 ++--
 upcean/encode/upce.py        |   2 +-
 upcean/fonts/OCRA.otf        | Bin 14356 -> 14744 bytes
 upcean/fonts/OCRA.ttf        | Bin 15215 -> 15896 bytes
 upcean/fonts/OCRB.otf        | Bin 18064 -> 18324 bytes
 upcean/fonts/OCRB.ttf        | Bin 18761 -> 19444 bytes
 upcean/predraw/precairo.py   |   4 ++--
 upcean/predraw/preqahirah.py |   4 ++--
 upcean/support.py            |   2 +-
 26 files changed, 29 insertions(+), 27 deletions(-)

diff --git a/upcean/encode/binary.py b/upcean/encode/binary.py
index 8c30f944..4c4d82dc 100644
--- a/upcean/encode/binary.py
+++ b/upcean/encode/binary.py
@@ -138,6 +138,8 @@ def encode_binary_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48,
     LineFixTxtStart = 0
     if(tkintersupport and imageoutlib == "tkinter"):
         LineFixTxtStart = 4
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
+        LineTxtStart = 1
     while(txtbari < txtbarmax):
         texthidden = False
         if hidetext or (upc['text']['type'][txtbari] == "sn" and (hidesn is None or hidesn)) or (upc['text']['type'][txtbari] == "cd" and (hidecd is None or hidecd)):
diff --git a/upcean/encode/codabar.py b/upcean/encode/codabar.py
index abcc2b6c..423f39b0 100644
--- a/upcean/encode/codabar.py
+++ b/upcean/encode/codabar.py
@@ -267,7 +267,7 @@ def encode_codabar_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48
     LineTxtStartNorm = 20
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         texthidden = False
diff --git a/upcean/encode/code11.py b/upcean/encode/code11.py
index 5b8de0e1..20f290a0 100644
--- a/upcean/encode/code11.py
+++ b/upcean/encode/code11.py
@@ -226,7 +226,7 @@ def encode_code11_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48,
     LineTxtStartNorm = 10
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_print)):
         texthidden = False
diff --git a/upcean/encode/code128.py b/upcean/encode/code128.py
index e6f5fe93..85d86032 100644
--- a/upcean/encode/code128.py
+++ b/upcean/encode/code128.py
@@ -555,7 +555,7 @@ def encode_code128_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48
     LineTxtStartNorm = 16
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     if(barcode_is_rev):
         upc_print.reverse()
diff --git a/upcean/encode/code32.py b/upcean/encode/code32.py
index 175eede3..b766496e 100644
--- a/upcean/encode/code32.py
+++ b/upcean/encode/code32.py
@@ -267,7 +267,7 @@ def encode_code32_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48,
     LineTxtStartNorm = 30
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         texthidden = False
diff --git a/upcean/encode/code39.py b/upcean/encode/code39.py
index e348e82b..c6453321 100644
--- a/upcean/encode/code39.py
+++ b/upcean/encode/code39.py
@@ -289,7 +289,7 @@ def encode_code39_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48,
     LineTxtStartNorm = 15
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     drawColorText(upc_img, 10 * int(resize * barwidth[1]), LineTxtStart * barwidth[0], vertical_text_fix + (
             barheight[0] * int(resize)),  "*", barcolor[1], "ocrb", imageoutlib)
@@ -613,7 +613,7 @@ def encode_code39extended_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barhei
     LineTxtStartNorm = 15
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     drawColorText(upc_img, 10 * int(resize * barwidth[1]), LineTxtStart * barwidth[0], vertical_text_fix + (
             barheight[0] * int(resize)),  "*", barcolor[1], "ocrb", imageoutlib)
diff --git a/upcean/encode/code93.py b/upcean/encode/code93.py
index a9300f30..b565447e 100644
--- a/upcean/encode/code93.py
+++ b/upcean/encode/code93.py
@@ -297,7 +297,7 @@ def encode_code93_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48,
     LineTxtStartNorm = 18
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         texthidden = False
@@ -624,7 +624,7 @@ def encode_code93extended_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barhei
     LineTxtStartNorm = 18
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         texthidden = False
diff --git a/upcean/encode/ean13.py b/upcean/encode/ean13.py
index e2010695..831e9fb9 100644
--- a/upcean/encode/ean13.py
+++ b/upcean/encode/ean13.py
@@ -397,7 +397,7 @@ def encode_ean13_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48,
     LineTxtStartNorm = 2
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = list(re.findall("(\\d{13})", upc)[0])+[">"]
     while (NumTxtZero < len(upc_print)):
diff --git a/upcean/encode/ean2.py b/upcean/encode/ean2.py
index a0b123fa..375aeb60 100644
--- a/upcean/encode/ean2.py
+++ b/upcean/encode/ean2.py
@@ -250,7 +250,7 @@ def encode_ean2_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 5
     LineTxtStartNorm = 6
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = LeftDigit
     while (NumTxtZero < len(upc_print)):
diff --git a/upcean/encode/ean5.py b/upcean/encode/ean5.py
index c4f4f7f0..9f13aaa6 100644
--- a/upcean/encode/ean5.py
+++ b/upcean/encode/ean5.py
@@ -337,7 +337,7 @@ def encode_ean5_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 5
     LineTxtStartNorm = 7
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = LeftDigit
     while (NumTxtZero < len(upc_print)):
diff --git a/upcean/encode/ean8.py b/upcean/encode/ean8.py
index 0b7538b2..22370f40 100644
--- a/upcean/encode/ean8.py
+++ b/upcean/encode/ean8.py
@@ -404,7 +404,7 @@ def encode_ean8_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 5
     LineTxtStartNorm = 0
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = ["<"]+list(re.findall("(\\d{8})", upc)[0])+[">"]
     while (NumTxtZero < len(upc_print)):
diff --git a/upcean/encode/itf.py b/upcean/encode/itf.py
index 6a903dee..61d4a660 100644
--- a/upcean/encode/itf.py
+++ b/upcean/encode/itf.py
@@ -292,7 +292,7 @@ def encode_itf_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 54
     LineTxtStartNorm = 20
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         ArrayDigit = list(upc_matches[NumTxtZero])
diff --git a/upcean/encode/itf14.py b/upcean/encode/itf14.py
index 2ba5bdf2..0c416347 100644
--- a/upcean/encode/itf14.py
+++ b/upcean/encode/itf14.py
@@ -300,7 +300,7 @@ def encode_itf14_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48,
     LineTxtStartNorm = 23
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         ArrayDigit = list(upc_matches[NumTxtZero])
diff --git a/upcean/encode/msi.py b/upcean/encode/msi.py
index 3a5c9c3a..c278a10d 100644
--- a/upcean/encode/msi.py
+++ b/upcean/encode/msi.py
@@ -207,7 +207,7 @@ def encode_msi_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 54
     LineTxtStartNorm = 16
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_print)):
         texthidden = False
diff --git a/upcean/encode/plessey.py b/upcean/encode/plessey.py
index e0bab39a..4470951f 100644
--- a/upcean/encode/plessey.py
+++ b/upcean/encode/plessey.py
@@ -235,7 +235,7 @@ def encode_plessey_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48
     LineTxtStartNorm = 30
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         texthidden = False
diff --git a/upcean/encode/stf.py b/upcean/encode/stf.py
index 014a9bfc..0da07553 100644
--- a/upcean/encode/stf.py
+++ b/upcean/encode/stf.py
@@ -244,7 +244,7 @@ def encode_stf_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 54
     LineTxtStartNorm = 24
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     while (NumTxtZero < len(upc_matches)):
         texthidden = False
diff --git a/upcean/encode/upca.py b/upcean/encode/upca.py
index 835628bb..e6d06cec 100644
--- a/upcean/encode/upca.py
+++ b/upcean/encode/upca.py
@@ -331,7 +331,7 @@ def encode_upca_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 5
     LineTxtStartNorm = 1
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = list(re.findall("(\\d{12})", upc)[0])
     while (NumTxtZero < len(upc_print)):
@@ -726,7 +726,7 @@ def encode_upcaean_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48
     LineTxtStartNorm = 2
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = [0]+list(re.findall("(\\d{12})", upc)[0])+[">"]
     while (NumTxtZero < len(upc_print)):
diff --git a/upcean/encode/upcavar.py b/upcean/encode/upcavar.py
index 5890234e..6cd75069 100644
--- a/upcean/encode/upcavar.py
+++ b/upcean/encode/upcavar.py
@@ -338,7 +338,7 @@ def encode_upcavar_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48
     LineTxtStartNorm = 1
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = list(re.findall("(\\d+)", upc)[0])
     while (NumTxtZero < len(upc_print)):
@@ -739,7 +739,7 @@ def encode_upcaeanvar_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=
     LineTxtStartNorm = 2
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = [0]+list(re.findall("(\\d+)", upc)[0])+[">"]
     while (NumTxtZero < len(upc_print)):
diff --git a/upcean/encode/upce.py b/upcean/encode/upce.py
index 7129208c..2e7520fc 100644
--- a/upcean/encode/upce.py
+++ b/upcean/encode/upce.py
@@ -419,7 +419,7 @@ def encode_upce_barcode(inimage, upc, resize=1, shiftxy=(0, 0), barheight=(48, 5
     LineTxtStartNorm = 1
     if(tkintersupport and imageoutlib == "tkinter"):
         LineTxtStart += (4 * int(resize))
-    elif(cairosupport and (imageoutlib == "cairo" or imageoutlib == "cairosvg")):
+    elif(svgwritesupport and not cairosvgsupport and imageoutlib == "svgwrite"):
         LineTxtStart += (1 * int(resize))
     upc_print = list(re.findall("(\\d{8})", upc)[0])
     while (NumTxtZero < len(upc_print)):
diff --git a/upcean/fonts/OCRA.otf b/upcean/fonts/OCRA.otf
index 86f56dcdc5cb1ccf7d94b79fea46d7a461ff6683..9cc8b41bd2cacfc8352bd11844f59484f0adc0fe 100644
GIT binary patch
delta 2411
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
R#wF8W5!^$r0=`5J{2SWid4>Q0

delta 2049
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
UJ$NPjlB?wkesO6EgNgzE4dDwi3;+NC

diff --git a/upcean/fonts/OCRA.ttf b/upcean/fonts/OCRA.ttf
index ed702ff1d0697c2f9b5102bfaf7cb494b20bdcbd..6a64901c92dccd9b600f2aa2f06f88d8b37b5f05 100644
GIT binary patch
delta 2350
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
A)Bpeg

delta 2174
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
SEKUF9KJ%pUS>0)kBmV_(Qm5|#

diff --git a/upcean/fonts/OCRB.otf b/upcean/fonts/OCRB.otf
index 3dab41e086c97cd33b8ff2e7ef043a077b3187b5..c764b0f4e085551e2eafcd6d1c32e5220a9e550e 100644
GIT binary patch
delta 6145
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

delta 5966
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
YGY);j0<^5_(128Sys0b}tV8I30r7NGNB{r;

diff --git a/upcean/fonts/OCRB.ttf b/upcean/fonts/OCRB.ttf
index 1406f555fcbcaddca7702e0d5cf7c09ca01ac926..eb9d4577c418e16cc955cf9b72548d59ec33cb57 100644
GIT binary patch
delta 6931
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
J`S-u{{5OaX!bJc8

delta 6367
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
Nxp->7e)V_YzX2~pRy_a!

diff --git a/upcean/predraw/precairo.py b/upcean/predraw/precairo.py
index c85fa882..364ff3fa 100644
--- a/upcean/predraw/precairo.py
+++ b/upcean/predraw/precairo.py
@@ -238,7 +238,7 @@ def drawColorRectangleAlt(ctx, x1, y1, x2, y2, color, line_width=1):
     return True
 
 # Define valid PyCairo output formats
-cairo_valid_extensions = {"SVG", "PDF", "PS", "EPS", "RAW", "CAIRO"}
+cairo_valid_extensions = {"SVG", "PDF", "PS", "EPS", "RAW", "CAIRO", "QAHIRAH"}
 
 def get_save_filename(outfile):
     """
@@ -377,7 +377,7 @@ def save_to_file(inimage, outfile, outfileext, imgcomment="barcode"):
         image_context.paint()
         image_surface.flush()
         image_surface.finish()
-    elif(outfileext == "CAIRO"):
+    elif(outfileext == "CAIRO" or outfileext == "QAHIRAH"):
         # Create an ScriptSurface with the exact dimensions of the recorded content
         image_surface = cairo.ScriptSurface(cairo.ScriptDevice(outfile), cairo.FORMAT_RGB24, int(width), int(height))
         image_context = cairo.Context(image_surface)
diff --git a/upcean/predraw/preqahirah.py b/upcean/predraw/preqahirah.py
index 9d1e55b1..ef32df2f 100644
--- a/upcean/predraw/preqahirah.py
+++ b/upcean/predraw/preqahirah.py
@@ -182,7 +182,7 @@ def drawColorRectangleAlt(ctx, x1, y1, x2, y2, color, line_width=1):
     return True
 
 # Define valid Qahirah output formats
-cairo_valid_extensions = {"SVG", "PDF", "PS", "EPS", "RAW", "CAIRO"}
+cairo_valid_extensions = {"SVG", "PDF", "PS", "EPS", "RAW", "CAIRO", "QAHIRAH"}
 
 def get_save_filename(outfile):
     """
@@ -322,7 +322,7 @@ def save_to_file(inimage, outfile, outfileext, imgcomment="barcode"):
         image_context.set_source_surface(upc_preimg, (-x, -y))
         image_context.paint()
         image_surface.flush()
-    if outfileext == "CAIRO":
+    elif outfileext == "CAIRO" or outfileext == "QAHIRAH":
         # Step 1: Create the ScriptDevice, specifying the output file
         script_device = qah.ScriptDevice.create(outfile)
         # Step 2: Create a proxy surface linked to the ScriptDevice
diff --git a/upcean/support.py b/upcean/support.py
index 2fd58068..6d31b591 100644
--- a/upcean/support.py
+++ b/upcean/support.py
@@ -70,7 +70,7 @@ def get_importing_script_path():
     enable_pilsupport = True
     enable_cairosupport = True
     enable_qahirahsupport = True
-    enable_cairosvgsupport = True
+    enable_cairosvgsupport = False
     enable_wandsupport = True
     enable_magicksupport = True
     enable_pgmagicksupport = True