mirror of
https://github.com/pdewacht/brlaser
synced 2024-12-27 07:48:21 +01:00
Merge remote-tracking branch 'xc-racer99/master'
This commit is contained in:
commit
69cc0bfcc7
@ -33,7 +33,6 @@ Filter application/vnd.cups-raster 33 rastertobrlaser
|
|||||||
// The 1200dpi mode is weird: we need to send 1200x1200dpi raster
|
// The 1200dpi mode is weird: we need to send 1200x1200dpi raster
|
||||||
// data, but Brother only advertises 1200x600dpi. I wonder what
|
// data, but Brother only advertises 1200x600dpi. I wonder what
|
||||||
// is going on there.
|
// is going on there.
|
||||||
Resolution k 1 0 0 0 "300dpi/300 DPI"
|
|
||||||
*Resolution k 1 0 0 0 "600dpi/600 DPI"
|
*Resolution k 1 0 0 0 "600dpi/600 DPI"
|
||||||
Resolution k 1 0 0 0 "1200dpi/1200HQ"
|
Resolution k 1 0 0 0 "1200dpi/1200HQ"
|
||||||
|
|
||||||
@ -87,6 +86,7 @@ Option "brlaserEconomode/Toner save mode" Boolean AnySetup 10
|
|||||||
Attribute "NickName" "" "Brother DCP-7030, using @PACKAGE@ v@VERSION@"
|
Attribute "NickName" "" "Brother DCP-7030, using @PACKAGE@ v@VERSION@"
|
||||||
Attribute "1284DeviceID" "" "MFG:Brother;CMD:PJL,HBP;MDL:DCP-7030;CLS:PRINTER;"
|
Attribute "1284DeviceID" "" "MFG:Brother;CMD:PJL,HBP;MDL:DCP-7030;CLS:PRINTER;"
|
||||||
PCFileName "br7030.ppd"
|
PCFileName "br7030.ppd"
|
||||||
|
Resolution k 1 0 0 0 "300dpi/300 DPI"
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -94,6 +94,7 @@ Option "brlaserEconomode/Toner save mode" Boolean AnySetup 10
|
|||||||
Attribute "NickName" "" "Brother DCP-7055, using @PACKAGE@ v@VERSION@"
|
Attribute "NickName" "" "Brother DCP-7055, using @PACKAGE@ v@VERSION@"
|
||||||
Attribute "1284DeviceID" "" "MFG:Brother;CMD:PJL,HBP;MDL:DCP-7055;CLS:PRINTER;CID:Brother Laser Type1;"
|
Attribute "1284DeviceID" "" "MFG:Brother;CMD:PJL,HBP;MDL:DCP-7055;CLS:PRINTER;CID:Brother Laser Type1;"
|
||||||
PCFileName "br7055.ppd"
|
PCFileName "br7055.ppd"
|
||||||
|
Resolution k 1 0 0 0 "300dpi/300 DPI"
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
@ -109,4 +110,5 @@ Option "brlaserEconomode/Toner save mode" Boolean AnySetup 10
|
|||||||
Attribute "NickName" "" "Brother DCP-7065DN, using @PACKAGE@ v@VERSION@"
|
Attribute "NickName" "" "Brother DCP-7065DN, using @PACKAGE@ v@VERSION@"
|
||||||
Attribute "1284DeviceID" "" "MFG:Brother;CMD:PJL,HBP;MDL:DCP-7065DN;CLS:PRINTER;CID:Brother Laser Type1;"
|
Attribute "1284DeviceID" "" "MFG:Brother;CMD:PJL,HBP;MDL:DCP-7065DN;CLS:PRINTER;CID:Brother Laser Type1;"
|
||||||
PCFileName "br7065dn.ppd"
|
PCFileName "br7065dn.ppd"
|
||||||
|
Duplex rotated
|
||||||
}
|
}
|
||||||
|
10
src/job.cc
10
src/job.cc
@ -73,10 +73,16 @@ void job::write_page_header() {
|
|||||||
fprintf(out_, "@PJL SET PAGEPROTECT = AUTO\n");
|
fprintf(out_, "@PJL SET PAGEPROTECT = AUTO\n");
|
||||||
fprintf(out_, "@PJL SET ORIENTATION = PORTRAIT\n");
|
fprintf(out_, "@PJL SET ORIENTATION = PORTRAIT\n");
|
||||||
fprintf(out_, "@PJL ENTER LANGUAGE = PCL\n");
|
fprintf(out_, "@PJL ENTER LANGUAGE = PCL\n");
|
||||||
|
|
||||||
|
fputs("\033E", out_);
|
||||||
|
fprintf(out_, "\033&l%dX", std::max(1, page_params_.num_copies));
|
||||||
|
|
||||||
|
if (page_params_.duplex) {
|
||||||
|
fputs("\033&l2S", out_);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void job::encode_page(const page_params &page_params,
|
void job::encode_page(const page_params &page_params,
|
||||||
int num_copies,
|
|
||||||
int lines,
|
int lines,
|
||||||
int linesize,
|
int linesize,
|
||||||
nextline_fn nextline) {
|
nextline_fn nextline) {
|
||||||
@ -95,8 +101,6 @@ void job::encode_page(const page_params &page_params,
|
|||||||
block.add_line(encode_line(line));
|
block.add_line(encode_line(line));
|
||||||
std::swap(line, reference);
|
std::swap(line, reference);
|
||||||
|
|
||||||
fputs("\033E", out_);
|
|
||||||
fprintf(out_, "\033&l%dX", std::max(1, num_copies));
|
|
||||||
fputs("\033*b1030m", out_);
|
fputs("\033*b1030m", out_);
|
||||||
|
|
||||||
for (int i = 1; i < lines && nextline(line.data()); ++i) {
|
for (int i = 1; i < lines && nextline(line.data()); ++i) {
|
||||||
|
@ -23,14 +23,18 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
struct page_params {
|
struct page_params {
|
||||||
|
int num_copies;
|
||||||
int resolution;
|
int resolution;
|
||||||
|
bool duplex;
|
||||||
bool economode;
|
bool economode;
|
||||||
std::string sourcetray;
|
std::string sourcetray;
|
||||||
std::string mediatype;
|
std::string mediatype;
|
||||||
std::string papersize;
|
std::string papersize;
|
||||||
|
|
||||||
bool operator==(const page_params &o) const {
|
bool operator==(const page_params &o) const {
|
||||||
return resolution == o.resolution
|
return num_copies == o.num_copies
|
||||||
|
&& resolution == o.resolution
|
||||||
|
&& duplex == o.duplex
|
||||||
&& economode == o.economode
|
&& economode == o.economode
|
||||||
&& sourcetray == o.sourcetray
|
&& sourcetray == o.sourcetray
|
||||||
&& mediatype == o.mediatype
|
&& mediatype == o.mediatype
|
||||||
@ -46,7 +50,6 @@ class job {
|
|||||||
~job();
|
~job();
|
||||||
|
|
||||||
void encode_page(const page_params ¶ms,
|
void encode_page(const page_params ¶ms,
|
||||||
int num_copies,
|
|
||||||
int lines,
|
int lines,
|
||||||
int linesize,
|
int linesize,
|
||||||
nextline_fn nextline);
|
nextline_fn nextline);
|
||||||
|
@ -107,9 +107,11 @@ page_params build_page_params() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
page_params p = { };
|
page_params p = { };
|
||||||
|
p.num_copies = header.NumCopies;
|
||||||
p.resolution = header.HWResolution[0];
|
p.resolution = header.HWResolution[0];
|
||||||
p.economode = header.cupsInteger[10];
|
p.economode = header.cupsInteger[10];
|
||||||
p.mediatype = header.MediaType;
|
p.mediatype = header.MediaType;
|
||||||
|
p.duplex = header.Duplex;
|
||||||
|
|
||||||
if (header.MediaPosition < sources.size())
|
if (header.MediaPosition < sources.size())
|
||||||
p.sourcetray = sources[header.MediaPosition];
|
p.sourcetray = sources[header.MediaPosition];
|
||||||
@ -182,7 +184,6 @@ int main(int argc, char *argv[]) {
|
|||||||
dump_page_header(header);
|
dump_page_header(header);
|
||||||
}
|
}
|
||||||
job.encode_page(build_page_params(),
|
job.encode_page(build_page_params(),
|
||||||
header.NumCopies,
|
|
||||||
header.cupsHeight,
|
header.cupsHeight,
|
||||||
header.cupsBytesPerLine,
|
header.cupsBytesPerLine,
|
||||||
next_line);
|
next_line);
|
||||||
|
Loading…
Reference in New Issue
Block a user