Bug#1015911: git patch
>From 14804dd48e2bbcd662a7127ef55ba803f685c6e2 Mon Sep 17 00:00:00 2001
From: Peter Sagi <psagi@freemail.hu>
Date: Sun, 24 Jul 2022 09:57:24 +0000
Subject: [PATCH] Fix the misaligned printed image for smaller paper-sizes on
LaserJet 1100. Closes: #1015911.
---
Normalize.cpp | 3 ++-
Normalize.h | 2 +-
base/models.py | 3 ++-
data/models/models.dat | 6 +++---
prnt/drv/hpcups.drv.in.template | 16 +++++++++++++++-
prnt/hpcups/Encapsulator.cpp | 16 ++++++++--------
6 files changed, 31 insertions(+), 15 deletions(-)
diff --git a/Normalize.cpp b/Normalize.cpp
index afbd356..65df257 100644
--- a/Normalize.cpp
+++ b/Normalize.cpp
@@ -119,7 +119,8 @@ string TECH_SUBCLASSES[MAX_SUB_CLASS] = {
"Mono_Duplex",
"AutoDuplex",
"K10",
- "CuHdIPH"
+ "CuHdIPH",
+ "CenterAligned"
};
/** string array of shortening replacements */
diff --git a/Normalize.h b/Normalize.h
index 0839174..fe5cb67 100644
--- a/Normalize.h
+++ b/Normalize.h
@@ -6,7 +6,7 @@
#define MAX_TECH_CLASS_PDL 67
#define MAX_TECH_CLASS 77
#define MAX_FAMILY_CLASS 54
-#define MAX_SUB_CLASS 32
+#define MAX_SUB_CLASS 33
#define COLOR "Color"
diff --git a/base/models.py b/base/models.py
index 46c44e4..5776831 100644
--- a/base/models.py
+++ b/base/models.py
@@ -272,7 +272,8 @@ TECH_SUBCLASSES = [
"Mono_Duplex",
"AutoDuplex",
"K10",
- "CuHdIPH"
+ "CuHdIPH",
+ "CenterAligned"
]
TECH_SUBCLASSES.sort()
diff --git a/data/models/models.dat b/data/models/models.dat
index 113cf26..fc3ef33 100644
--- a/data/models/models.dat
+++ b/data/models/models.dat
@@ -18504,7 +18504,7 @@ support-type=2
support-ver=0.9.5
tech-class=LJMono
family-class=LJ-Class6
-tech-subclass=Normal
+tech-subclass=CenterAligned
tech-type=3
usb-pid=0
usb-vid=3f0
@@ -18587,7 +18587,7 @@ support-type=2
support-ver=0.9.5
tech-class=LJMono
family-class=LJ-Class6
-tech-subclass=Normal
+tech-subclass=CenterAligned
tech-type=3
usb-pid=0
usb-vid=3f0
@@ -18830,7 +18830,7 @@ support-type=2
support-ver=0.9.5
tech-class=LJMono
family-class=LJ-Class6
-tech-subclass=Normal
+tech-subclass=CenterAligned
tech-type=3
usb-pid=0
usb-vid=3f0
diff --git a/prnt/drv/hpcups.drv.in.template b/prnt/drv/hpcups.drv.in.template
index 9dddc2b..351e966 100644
--- a/prnt/drv/hpcups.drv.in.template
+++ b/prnt/drv/hpcups.drv.in.template
@@ -13730,6 +13730,12 @@ Group "RLT/HP Real Life Technologies"
Choice "Draft/Draft (Economy)" "<</OutputType(-1)/HWResolution[300 300]>>setpagedevice"
Choice "Best/Best" "<</OutputType(0)/HWResolution[600 600]>>setpagedevice"
+ /* Dummy option to handle the center-aligned paper guide feature of the
+ LaserJet 1100 family */
+ Option "PaperAlignment/Paper Alignment" PickOne AnySetup 10.0
+ *Choice "Left" ""
+ Choice "Center" "<</cupsInteger1 783>>setpagedevice"
+
// Duplexer is optional...
Installable "OptionDuplex/Duplexer Installed"
@@ -13805,11 +13811,19 @@ Group "RLT/HP Real Life Technologies"
MinSize 1in 4in
MaxSize 8.5in 14in
- // <%LJMono:Normal%>
{
+ UIConstraints "*PaperAlignment Center *MediaType"
+ // <%LJMono:Normal%>
+ }
+ {
+ UIConstraints "*PaperAlignment Center *MediaType"
UIConstraints "*OutputMode Best *MediaType"
// <%LJMono:300dpiOnly%>
}
+ {
+ UIConstraints "*PaperAlignment Left *MediaType"
+ // <%LJMono:CenterAligned%>
+ }
} // End Supported media sizes.
{
diff --git a/prnt/hpcups/Encapsulator.cpp b/prnt/hpcups/Encapsulator.cpp
index e661f4a..9e78033 100644
--- a/prnt/hpcups/Encapsulator.cpp
+++ b/prnt/hpcups/Encapsulator.cpp
@@ -255,6 +255,14 @@ void Encapsulator::sendJobHeader()
addToHeader((const BYTE *) szStr, 20);
}
+ top_margin = m_pMA->printable_start_y - ((m_pJA->mech_offset * m_pQA->actual_vertical_resolution)/1000);
+ int left_margin = 0;
+ if (m_pJA->integer_values[1] > 0)
+ {
+ left_margin = ((m_pJA->integer_values[1] * m_pQA->horizontal_resolution) / 100 - m_pMA->printable_width) / 2;
+ }
+ addToHeader("\x1b*p%dx%dY", left_margin, top_margin);
+
const BYTE *pgrafMode = grafMode2;
if (m_pJA->color_mode == 0)
{
@@ -266,14 +274,6 @@ void Encapsulator::sendJobHeader()
addToHeader((const BYTE *) pgrafMode, 5);
addToHeader((const BYTE *) seedSame, sizeof(seedSame));
- top_margin = m_pMA->printable_start_y - ((m_pJA->mech_offset * m_pQA->actual_vertical_resolution)/1000);
- int left_margin = 0;
- if (m_pJA->integer_values[1] > 0)
- {
- left_margin = ((m_pJA->integer_values[1] * m_pQA->horizontal_resolution) / 100 - m_pMA->printable_width) / 2;
- }
- addToHeader("\x1b*p%dx%dY", left_margin, top_margin);
-
return;
}
--
2.36.1
Reply to: