Forum moved here!

Home / Command Line Print Resolution and Size

boulec

Hello,

I’m trying to print larger format CAD drawings, like A2 A1 A0, scale 1:1 on our rolplotter. No matter what I try, I only get a part of the document (cropt to A4) printed.
Diving into the “print.cpp” source code, I only find references to A4 and A3 ISO formats.

Does this mean that SumatraPdf does not support commandline printing for this large format documents?

Or am I overlooking something?

Thanks…

GitHubRulesOK

LATER EDIT FOR THOSE LOOKING FOR A SIMILAR ANSWER
Command line paper sizes have been significantly updated in current daily build, built on 2020-11-23, and later pre-releases for more details see

as you have observed although within SumatraPDF it can print to whatever the printer driver can accept e.g. A0 or larger
Using the command line the largest result was achieved with paper=A3, I tried every way I can (even using a hex editor) to exceed that without success, it is probably for the best as the resulting print image file sizes would be large.

Depending on the print driver there may be bin sizes such a A0sheet , however I don’t have one here to test the bin=setting

The only solution I can think off at present is to amend the source code to accept other valid page sizes, but that could require further changes to handle any necessary rescaling

boulec

Ok, Thanks for the investigation.

I’ll file a new issue in the issuetracker for this.

CanadianHusky

Hello,

Has there been any improvement since this post above?

I would like to print oversize drawings to a Windows Drive for Largeformat Plotters/Inkjets from the Command Line.
Having a ‘Papersize’ option and a rendering resolution that is passed in from the command line would be ideal.
thanks

GitHubRulesOK

There was improvement to specify A2 or A6 in addition to A3 A4 A5
the default resolution is down to the driver but you will likely hit other issues before that needs changing.

I worked for decades supporting Large format scan and plot systems so suspect you will find SumatraPDF unsuited to your needs.

In CAD Vector plotting
1 unit of vector line is the same memory storage no matter what the scale or resolution

Rasterised plotting requires vast memory reserves so as you jump size say
A6 = 1 Memory unit
A4 = 4 Memory units
A2 = 16 Memory units
A0 = 256 Memory units

No mater what the units are it is the non linear escalation that causes limitations.

Using MS Print to PDF with a version I modified to cover A6 to A2 to match SumatraPDF range. I got these results using a greyscale example which are not too bad however (due to compression) they are not the real world volumes that would be sent by the spooler.

A6 = 4.7 MB
A4 = 14.38 MB
A2 = 34.74 MB

CanadianHusky

Understood. Thank you for the explanation.
Printing requirement for me is indeed Largeformat Vector and Scans in the range of 36x72" (or 914x2000mm)
It seems other PDF apps are doing this in Vector mode and do not convert to Raster unless a “Print as Image” mode is explicitly enabled.
I did test MuPDF, the underlying Renderer in Sumatra. It has no problems creating an Image at 36x72" at 300dpi. Large file…yes, but still worked fine.
Can that file not be copied in an efficient way into the Windows Spoolers Print buffer ?
Not experienced enough to comment further on the technical details of the actual printing but thank you anyways for the quick response.

GitHubRulesOK

Always difficult to project forward to spot snags in printing,
Command line printing often requires settings be optimized by different parts of the system, but at the end of the day it is that giant spoolfile getting copied through a cable in an orderly fashion.

In the good old days we just said Copy file.prn LPT then crossed toes and everything. In windows its still the same under the hood, just the expectations and process interuptions are greater.

I would start with a simple (low memory) diagonal line in 36 x 72 border saved as PDF then try plotting that at A2 but that is the Max for SumatraPDF as it stands.

Sumatrapdf.exe -print-to-default -print-settings “paper=A2” filename.pdf

First issue will be lack of any controls over scaling so would first need to produce the pdf to suit A0 border ratio (841 x 1189) i.e. not 36 x 72 then one can be confident the plot is DO NOT SCALE but as we know Jack will try to use thumb lengths for building his house then say the drawing was wrong.

Since you want it at A0 we need to tell the default driver to use an A0 sheet and fit the A2 input to match it @ double size.
With a bit of luck ( font strokes and line weights were specified correctly) so out pops an A0 sheet with a diagonal line all the way across

gaston1378

Hi sir,

Can sumatra accpet papercut size B4 or B4(JIS) in command line?
like this:

Sumatrapdf.exe -print-to-default -print-settings “paper=B4” filename.pdf
Sumatrapdf.exe -print-to-default -print-settings “paper=B4(JIS)” filename.pdf

B4=250mm x 353mm
B4(JIS)=257mmx 364mm

The pdf is in B4 size, and I want to print it in B4 size.

Should I set default printer driver in B4 size and use noscale in comman-line?

Please advise!

BR
Gaston

SumatraPeter

@gaston1378: Have you referred to the following documentation page yet?

gaston1378

Yes I read it and if have sample as A size.

I don’t know what parameter for paper size B4 JIS.

Please advise!

GitHubRulesOK

Whilst you can manually chose any paper size you need from the print dialog to change the default, but I do not think that SumatraPDF Command line forces many sizes, the list is “paper=size”

where size is one of A2, A3, A4, A5, A6, Letter, Legal, Tabloid, Statement

it is an over-ride to the default, and if you try wrong settings it will ALWAYS be the machine regional default (for me thats A4) so best to not use it (this is a common problem with lables, cards or envelope sizes)

It would have been better if paper was simply set as x and y

As per the usual advice it is the default printer that determines size so if the paper is B4 set default page size = B4 if the paper is B4(JIS) set the default page to B4(JIS) but that in turn can be over-ridden by windows use of a regional default, so for me in europe the system default is A4, which I can then over-ride with one of the above, in North America it would be US Letter and a user there could over-ride that to A4 but not B4
B4(JIS) is listed as Locale 12 so guess that would need to be the one found in the registry, it’s probably only set as such in a native Japanese version of windows. However Microsoft say if the region is changed on a machine then the next added printer will also by design be changed !

LOCALE_IPAPERSIZE
1 	US Letter
5 	US legal
8 	A3
9 	A4
12 	B4 (JIS)
13 	B5 (JIS) 

GitHubRulesOK

@gaston1378
So far I have only been able to use default b4 (jis) as shown above to print a b4jis input to a b4jis output using SumatraPDF version 3.0 (versions 3,1 and above seem to require me to live in Japan) using internal setting

PrinterDefaults [
	PrintScale = none
]

and command

SumatraPDF.exe  -print-to "Microsoft Print to PDF" -print-settings "noscale" b4jis.pdf

I tried several ways to change region to British Singapore or Japan but windows just wont let me switch here from an A4 default even if adding a new printer which Microsoft say it should do “by design”, hence many users around the world have conflicting default paper sizes. Its a MS locale regional thing.

image

gaston1378

Thank you for your advice.