Printing without showing on the print preview [duplicate] - javascript

As, we know in C# windows form application we can print content directly to print without any preview. I want to print content in jQuery/JavaScript when user click a button, browser does not show any print preview and content printed to printer.
I am also having the same issue.

After hours of research I found following solutions to resolve my issue.
Maybe you could setup your printers with Google Clound Print then use the cloud printing API to silently submit jobs to them. It looks like you can specify the printer id when you submit the job. You might need to use something like html2canvas to rasterize the webpage.
Found here Select a printer and silently print
In chrome (v18+) we have the --kiosk --kiosk-printing switches. One can print automatically to default printer without print confirmation.
You can see it from this video http://www.youtube.com/watch?v=D6UHjuvI7IE
Found here Google Chrome Extension: Print the page silently

Browsers will not allow that to happen. You can use the below plugin to provide beautiful previews.
https://github.com/etimbo/jquery-print-preview-plugin
Demo: http://etimbo.github.io/jquery-print-preview-plugin/example/index.html

it is posible in IE with VBScript script, just put it into your page.
<script type="text/VBScript" language="VBScript">
Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>
<script type="text/javascript">
setTimeout(function() {
window.print();
self.close();
}, 1000);
</script>

This one worked for me perfectly. If you are using Mozilla Firefox navigate to config files by typing about:config in search bar and hit enter. You will be directed to a page with firefox settings and search for print.always_print_silent. To disable print preview change the boolean value to true and to enable change to true.
It worked for me. In chrome use --kiosk printing.
For more visit https://support.aerocrs.com/hc/en-us/articles/360030321912-Firefox-browser-bypassing-the-print-dialog-box-

It is actually possible by following plugins, and then call java script while printing.
1- QZ Tray ( https://qz.io )
2- JS Print Manager ( https://www.neodynamic.com/articles/Print-HTML-from-Javascript-to-client-printer-without-print-dialog-silently/ )

Related

Can't silent print pdf in firefox/chrome

I need to print pdf silently in kiosk.
So far I was printing webpage and it worked fine:
//print plugin
<script src="js/jQuery-printPage-plugin/jquery.printPage.js" type="text/javascript"></script>
//definition
$(".btnPrint").printPage({
url: "adres of page to print",
attr: "href",
message:"Please wait."
});
$(".btnPrint").trigger("click"); //I simulate user clicking print button
(Also I added silent print in firefox about:config to hide print dialog. (similar to chrome --kiosk-printing))
The problem is that pdf won't print.
SecurityError: Permission denied to access property "print" on cross-origin object
I don't need to use this plugin, any working plugin will be ok. I have found a lot of stuff all over the internet concerning the problem, but none is work for me - I tried various solutions in chrome/ff
1) creating new window (won't include pdf directly, need to use iframe/embed), printing via object or iframe.
2) On chrome I cant even get pdf printed from iframe at all (I get blank iframe)
3) firefox I can't print iframe contents with pdf inside (whole page that contain pdf will print, but I multiple page pdf will be cropped).
Please have in mind that I'm in total control of the kiosk (windows 7), and I can use any browser, install any additional software.
As usually latelly I answear to myself :P this is how I did it: FPDF+FPDI autoprint (not really answear to a question but working alternative in this problem)

window.print() does not work in IE 11

I have an angular js app and for a print functionality I am opening an html page using the window.open method.
public openNewWindow(html: string, title: string) {
var popupWin = window.open('', '_blank', 'scrollbars=no,menubar=no,toolbar=no,location=no,status=no,titlebar=no, height=500, weidth=900');
popupWin.window.focus();
popupWin.document.write(html);
popupWin.document.title = title;
};
I have a button on the html page to Print. I use the onclick event to call print.
<button class="print-btn" onclick="window.print();" id="view_print"> Print</button>
This code perfectly works in Chrome, but not in IE 11. If I change the default from Edge to IE 10 the print seem to be working and opening the print dialog window. It is definitely slower than the Chrome.
I have tried adding the emulation as below (for IE 10 and 8 etc) but it still does not work.
am I missing anything here? I find a lot of articles but I have not been able to fix it.
Scripted popup windows with size and position parameters are subject to Popup blocker and IE Security zone restrictions. try
window.open('', '_blank');
Use the File>Properties menu to determine which IE Security zone a web page/domain maps to.
See any Wikipedia article side bar for a template method of formatting the current web page in a printer friendly format using media queries.
I am seeing this also, but with the following information:
under Chrome: address at bottom of page is (the correct) http://server/path/file.php?querystring
under IE11: address at bottom of page is http://server/path/{8 digit dynamic alphanumeric string}.htm
The onscreen rendering is correct, but the printed result is a 404 error.
The current work around is to use Chrome.
If you have new system, and after trying everything this is not working out,
Try setting Printer First.
Set Default Printer and your IE should start responding to
"Ctrl" + "P"
or
window.print()

Print website (chrome and angular) is not working (blank)

My website system is running on chrome 37+ and using Angular.js and bootstrap.
For some reason, I can't print my website.
When i try to print my website (using the browser print dialog), I usually get a blank print preview ("can not load print preview"). Sometimes it is not blank, but not really show my website.
I tried to run my website on some google chrome versions and some computers and it is not working.
I have been searching for reasons, but can't find one that will fix this issue.
Let my know for reasons for this issue. Thank you.
Chrome actually does have emulation of printing. See
You'll find this in a tab adjacent to console within developer tools. By enabling CSS media on print, you'll see your site with any print media applied. Once enabled, you may use the element inspection as usual to see how those extra css rules affect your site.
In particular, bootstrap will remove any background, and run a bunch of defaults across many typical elements.
Also, see this answer https://stackoverflow.com/a/21156904/2923245

How to skip browser default print preview and print content directly to printer in jquery/javascript?

As, we know in C# windows form application we can print content directly to print without any preview. I want to print content in jQuery/JavaScript when user click a button, browser does not show any print preview and content printed to printer.
I am also having the same issue.
After hours of research I found following solutions to resolve my issue.
Maybe you could setup your printers with Google Clound Print then use the cloud printing API to silently submit jobs to them. It looks like you can specify the printer id when you submit the job. You might need to use something like html2canvas to rasterize the webpage.
Found here Select a printer and silently print
In chrome (v18+) we have the --kiosk --kiosk-printing switches. One can print automatically to default printer without print confirmation.
You can see it from this video http://www.youtube.com/watch?v=D6UHjuvI7IE
Found here Google Chrome Extension: Print the page silently
Browsers will not allow that to happen. You can use the below plugin to provide beautiful previews.
https://github.com/etimbo/jquery-print-preview-plugin
Demo: http://etimbo.github.io/jquery-print-preview-plugin/example/index.html
it is posible in IE with VBScript script, just put it into your page.
<script type="text/VBScript" language="VBScript">
Sub Print()
OLECMDID_PRINT = 6
OLECMDEXECOPT_DONTPROMPTUSER = 2
OLECMDEXECOPT_PROMPTUSER = 1
call WB.ExecWB(OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER,1)
End Sub
document.write "<object ID='WB' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></object>"
</script>
<script type="text/javascript">
setTimeout(function() {
window.print();
self.close();
}, 1000);
</script>
This one worked for me perfectly. If you are using Mozilla Firefox navigate to config files by typing about:config in search bar and hit enter. You will be directed to a page with firefox settings and search for print.always_print_silent. To disable print preview change the boolean value to true and to enable change to true.
It worked for me. In chrome use --kiosk printing.
For more visit https://support.aerocrs.com/hc/en-us/articles/360030321912-Firefox-browser-bypassing-the-print-dialog-box-
It is actually possible by following plugins, and then call java script while printing.
1- QZ Tray ( https://qz.io )
2- JS Print Manager ( https://www.neodynamic.com/articles/Print-HTML-from-Javascript-to-client-printer-without-print-dialog-silently/ )

Multiple Javascript files creating alert boxes

I have been given a project - the one HTML page includes about 45 different javascript files. I am getting alert boxes when I click on some of the elements - which javascript file is making the alert? How do I determine this, preferably which line in the javascript file but I can start with which file...
If this can be done within the web browser (I dont care which web browser) please let me know how... I have looked at the resources tab in chrome but it did not help me.
Thank you.
Use a text editor to replace all
alert
by
console.log
And then use Chrome inspector to see where the logs are.
Include your own javascript file on top of the page and predefine alert with:
alert = function(msg) {
alert(msg); // put breakpoint here
}
Then use the debugger (Firebug in Firefox, or Developer Tools in Chrome) to put breakpoint as described above. The stack trace view in the debugger will show you which script line / file is creating the alert
Use the profiler in Firebug
Console -> Profile -> Click to enable. It will show which all functions are calling, search that function names, and add break points to debug.

Categories

Resources