diff --git a/QRCoder/PostscriptQRCode.cs b/QRCoder/PostscriptQRCode.cs
index c3064644..99f86065 100644
--- a/QRCoder/PostscriptQRCode.cs
+++ b/QRCoder/PostscriptQRCode.cs
@@ -1,5 +1,6 @@
#if !NETSTANDARD1_3
using System.Drawing;
+using System.Text;
using static QRCoder.QRCodeGenerator;
namespace QRCoder;
@@ -100,35 +101,42 @@ public string GetGraphic(Size viewBox, Color darkColor, Color lightColor, bool d
var drawableModulesCount = QrCodeData.ModuleMatrix.Count - (drawQuietZones ? 0 : offset * 2);
var pointsPerModule = (double)Math.Min(viewBox.Width, viewBox.Height) / (double)drawableModulesCount;
- string psFile = string.Format(CultureInfo.InvariantCulture, PS_HEADER, new object[] {
+ var estimatedCapacity = PS_HEADER.Length + PS_FUNCTIONS.Length + PS_FOOTER.Length +
+ (drawableModulesCount * drawableModulesCount * 2) + // modules (either "f " or "b ")
+ drawableModulesCount * 3 + // newlines ("nl\n")
+ 200; // embedded numbers
+ var sb = new StringBuilder(estimatedCapacity);
+
+ sb.AppendFormat(CultureInfo.InvariantCulture, PS_HEADER, [
CleanSvgVal(viewBox.Width), CleanSvgVal(pointsPerModule),
epsFormat ? "EPSF-3.0" : string.Empty
- });
- psFile += string.Format(CultureInfo.InvariantCulture, PS_FUNCTIONS, new object[] {
+ ]);
+ sb.AppendFormat(CultureInfo.InvariantCulture, PS_FUNCTIONS, [
CleanSvgVal(darkColor.R /255.0), CleanSvgVal(darkColor.G /255.0), CleanSvgVal(darkColor.B /255.0),
CleanSvgVal(lightColor.R /255.0), CleanSvgVal(lightColor.G /255.0), CleanSvgVal(lightColor.B /255.0),
drawableModulesCount
- });
+ ]);
for (int xi = offset; xi < offset + drawableModulesCount; xi++)
{
if (xi > offset)
- psFile += "nl\n";
+ sb.Append("nl\n");
for (int yi = offset; yi < offset + drawableModulesCount; yi++)
{
- psFile += (QrCodeData.ModuleMatrix[xi][yi] ? "f " : "b ");
+ sb.Append(QrCodeData.ModuleMatrix[xi][yi] ? "f " : "b ");
}
- psFile += "\n";
}
- return psFile + PS_FOOTER;
+ sb.Append('\n');
+ sb.Append(PS_FOOTER);
+ return sb.ToString();
}
///
/// Cleans double values for international use/formats.
///
/// The input double value.
- /// Returns the cleaned string representation of the double value.
- private static string CleanSvgVal(double input) => input.ToString(System.Globalization.CultureInfo.InvariantCulture);
+ /// Returns the cleaned string representation of the double value, with a maximum of 7 significant digits.
+ private static string CleanSvgVal(double input) => input.ToString("G7", CultureInfo.InvariantCulture);
// Note: line terminations here will encode differently based on which platform QRCoder was compiled on (CRLF vs LF);
// however, PostScript interpreters should handle both equally well.
diff --git a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_colors.approved.txt b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_colors.approved.txt
index 4d1872cf..60e52670 100644
--- a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_colors.approved.txt
+++ b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_colors.approved.txt
@@ -50,70 +50,38 @@ grestore
gsave
sc sc scale
0 33 1 sub translate
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b
-nl
-b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b
-nl
-b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b
-nl
-b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b
-nl
-b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b
-nl
-b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b
-nl
-b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b
-nl
-b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b
-nl
-b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b
-nl
-b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b
-nl
-b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b
-nl
-b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b
-nl
-b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b
-nl
-b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b
-nl
-b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b
-nl
-b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b
-nl
-b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b
-nl
-b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b
-nl
-b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b
-nl
-b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b
-nl
-b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b
-nl
-b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b nl
+b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b nl
+b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b nl
+b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b nl
+b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b nl
+b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b nl
+b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b nl
+b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b nl
+b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b nl
+b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b nl
+b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b nl
+b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b nl
+b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b nl
+b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b nl
+b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b nl
+b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b nl
+b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b nl
+b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b nl
+b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b nl
+b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b nl
+b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b nl
+b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b nl
+b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b nl
+b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b nl
+b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
%%EndBody
grestore
diff --git a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_eps.approved.txt b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_eps.approved.txt
index 370c3675..6a4b0410 100644
--- a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_eps.approved.txt
+++ b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_eps.approved.txt
@@ -50,70 +50,38 @@ grestore
gsave
sc sc scale
0 33 1 sub translate
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b
-nl
-b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b
-nl
-b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b
-nl
-b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b
-nl
-b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b
-nl
-b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b
-nl
-b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b
-nl
-b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b
-nl
-b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b
-nl
-b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b
-nl
-b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b
-nl
-b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b
-nl
-b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b
-nl
-b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b
-nl
-b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b
-nl
-b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b
-nl
-b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b
-nl
-b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b
-nl
-b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b
-nl
-b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b
-nl
-b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b
-nl
-b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b nl
+b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b nl
+b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b nl
+b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b nl
+b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b nl
+b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b nl
+b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b nl
+b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b nl
+b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b nl
+b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b nl
+b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b nl
+b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b nl
+b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b nl
+b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b nl
+b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b nl
+b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b nl
+b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b nl
+b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b nl
+b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b nl
+b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b nl
+b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b nl
+b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b nl
+b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b nl
+b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b nl
+b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
%%EndBody
grestore
diff --git a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_simple.approved.txt b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_simple.approved.txt
index 93c83ee7..0fd16ade 100644
--- a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_simple.approved.txt
+++ b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_simple.approved.txt
@@ -50,70 +50,38 @@ grestore
gsave
sc sc scale
0 33 1 sub translate
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b
-nl
-b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b
-nl
-b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b
-nl
-b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b
-nl
-b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b
-nl
-b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b
-nl
-b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b
-nl
-b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b
-nl
-b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b
-nl
-b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b
-nl
-b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b
-nl
-b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b
-nl
-b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b
-nl
-b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b
-nl
-b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b
-nl
-b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b
-nl
-b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b
-nl
-b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b
-nl
-b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b
-nl
-b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b
-nl
-b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b
-nl
-b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b nl
+b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b nl
+b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b nl
+b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b nl
+b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b nl
+b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b nl
+b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b nl
+b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b nl
+b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b nl
+b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b nl
+b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b nl
+b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b nl
+b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b nl
+b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b nl
+b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b nl
+b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b nl
+b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b nl
+b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b nl
+b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b nl
+b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b nl
+b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b nl
+b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b nl
+b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b nl
+b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b nl
+b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
%%EndBody
grestore
diff --git a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size.approved.txt b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size.approved.txt
index 41dde38f..709bc3a1 100644
--- a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size.approved.txt
+++ b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size.approved.txt
@@ -50,70 +50,38 @@ grestore
gsave
sc sc scale
0 33 1 sub translate
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b
-nl
-b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b
-nl
-b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b
-nl
-b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b
-nl
-b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b
-nl
-b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b
-nl
-b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b
-nl
-b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b
-nl
-b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b
-nl
-b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b
-nl
-b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b
-nl
-b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b
-nl
-b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b
-nl
-b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b
-nl
-b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b
-nl
-b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b
-nl
-b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b
-nl
-b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b
-nl
-b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b
-nl
-b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b
-nl
-b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b
-nl
-b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b
-nl
-b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b
-nl
-b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
-b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
-nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b f f f f f f f b f b f b f b b b f b f f f f f f f b b b b nl
+b b b b f b b b b b f b b f f f f b b b b b f b b b b b f b b b b nl
+b b b b f b f f f b f b f f f b b f f b b b f b f f f b f b b b b nl
+b b b b f b f f f b f b f f f b f f f f f b f b f f f b f b b b b nl
+b b b b f b f f f b f b f b b f f b b f f b f b f f f b f b b b b nl
+b b b b f b b b b b f b b b f f b b b b f b f b b b b b f b b b b nl
+b b b b f f f f f f f b f b f b f b f b f b f f f f f f f b b b b nl
+b b b b b b b b b b b b b b f b f b b b b b b b b b b b b b b b b nl
+b b b b f f f f b b f b f b f f b b f b f f b b f f f b f b b b b nl
+b b b b f f b f f f b f f b f b f b f b b b b b b f f b b b b b b nl
+b b b b b f f f f f f b b f f f f b b b f f b f f f b b b b b b b nl
+b b b b b b b f b f b b f f f f f f b f f b b f b f f b b b b b b nl
+b b b b f b f f b f f f b f f f b f b b b f f b f b f b b b b b b nl
+b b b b b f f f b f b b b b b b b b f f f b f f f b b f f b b b b nl
+b b b b b f b b b f f f f f b b f f b b b b b f b f b f b b b b b nl
+b b b b f b f f b f b f f f f f f b f b b f f b b f b b f b b b b nl
+b b b b b b f b f f f f f f f f b f f b f f f f f b f b b b b b b nl
+b b b b b b b b b b b b f f b f b f b b f b b b f b f f b b b b b nl
+b b b b f f f f f f f b b b b b b b b b f b f b f f b f f b b b b nl
+b b b b f b b b b b f b b f f b b b f f f b b b f f b b f b b b b nl
+b b b b f b f f f b f b b b f b f b b b f f f f f b b b f b b b b nl
+b b b b f b f f f b f b f b f f f b f b b f f b f f f f f b b b b nl
+b b b b f b f f f b f b f b b f b b f b f b f b f f b f b b b b b nl
+b b b b f b b b b b f b f f f f b f f b b f b b f f f b b b b b b nl
+b b b b f f f f f f f b f b b b b f b b b f f b b b f f f b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
+b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b nl
b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b b
%%EndBody
grestore
diff --git a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size_no_quiet_zones.approved.txt b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size_no_quiet_zones.approved.txt
index 006f2148..cc78b5a0 100644
--- a/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size_no_quiet_zones.approved.txt
+++ b/QRCoderTests/PostscriptQRCodeRendererTests.can_render_postscript_qrcode_size_no_quiet_zones.approved.txt
@@ -50,54 +50,30 @@ grestore
gsave
sc sc scale
0 25 1 sub translate
-f f f f f f f b f b f b f b b b f b f f f f f f f
-nl
-f b b b b b f b b f f f f b b b b b f b b b b b f
-nl
-f b f f f b f b f f f b b f f b b b f b f f f b f
-nl
-f b f f f b f b f f f b f f f f f b f b f f f b f
-nl
-f b f f f b f b f b b f f b b f f b f b f f f b f
-nl
-f b b b b b f b b b f f b b b b f b f b b b b b f
-nl
-f f f f f f f b f b f b f b f b f b f f f f f f f
-nl
-b b b b b b b b b b f b f b b b b b b b b b b b b
-nl
-f f f f b b f b f b f f b b f b f f b b f f f b f
-nl
-f f b f f f b f f b f b f b f b b b b b b f f b b
-nl
-b f f f f f f b b f f f f b b b f f b f f f b b b
-nl
-b b b f b f b b f f f f f f b f f b b f b f f b b
-nl
-f b f f b f f f b f f f b f b b b f f b f b f b b
-nl
-b f f f b f b b b b b b b b f f f b f f f b b f f
-nl
-b f b b b f f f f f b b f f b b b b b f b f b f b
-nl
-f b f f b f b f f f f f f b f b b f f b b f b b f
-nl
-b b f b f f f f f f f f b f f b f f f f f b f b b
-nl
-b b b b b b b b f f b f b f b b f b b b f b f f b
-nl
-f f f f f f f b b b b b b b b b f b f b f f b f f
-nl
-f b b b b b f b b f f b b b f f f b b b f f b b f
-nl
-f b f f f b f b b b f b f b b b f f f f f b b b f
-nl
-f b f f f b f b f b f f f b f b b f f b f f f f f
-nl
-f b f f f b f b f b b f b b f b f b f b f f b f b
-nl
-f b b b b b f b f f f f b f f b b f b b f f f b b
-nl
+f f f f f f f b f b f b f b b b f b f f f f f f f nl
+f b b b b b f b b f f f f b b b b b f b b b b b f nl
+f b f f f b f b f f f b b f f b b b f b f f f b f nl
+f b f f f b f b f f f b f f f f f b f b f f f b f nl
+f b f f f b f b f b b f f b b f f b f b f f f b f nl
+f b b b b b f b b b f f b b b b f b f b b b b b f nl
+f f f f f f f b f b f b f b f b f b f f f f f f f nl
+b b b b b b b b b b f b f b b b b b b b b b b b b nl
+f f f f b b f b f b f f b b f b f f b b f f f b f nl
+f f b f f f b f f b f b f b f b b b b b b f f b b nl
+b f f f f f f b b f f f f b b b f f b f f f b b b nl
+b b b f b f b b f f f f f f b f f b b f b f f b b nl
+f b f f b f f f b f f f b f b b b f f b f b f b b nl
+b f f f b f b b b b b b b b f f f b f f f b b f f nl
+b f b b b f f f f f b b f f b b b b b f b f b f b nl
+f b f f b f b f f f f f f b f b b f f b b f b b f nl
+b b f b f f f f f f f f b f f b f f f f f b f b b nl
+b b b b b b b b f f b f b f b b f b b b f b f f b nl
+f f f f f f f b b b b b b b b b f b f b f f b f f nl
+f b b b b b f b b f f b b b f f f b b b f f b b f nl
+f b f f f b f b b b f b f b b b f f f f f b b b f nl
+f b f f f b f b f b f f f b f b b f f b f f f f f nl
+f b f f f b f b f b b f b b f b f b f b f f b f b nl
+f b b b b b f b f f f f b f f b b f b b f f f b b nl
f f f f f f f b f b b b b f b b b f f b b b f f f
%%EndBody
grestore
diff --git a/QRCoderTests/TransposeVerificationTests.postscript_renderer.approved.ps b/QRCoderTests/TransposeVerificationTests.postscript_renderer.approved.ps
index 0aef3dfa..52ac1b8c 100644
Binary files a/QRCoderTests/TransposeVerificationTests.postscript_renderer.approved.ps and b/QRCoderTests/TransposeVerificationTests.postscript_renderer.approved.ps differ