प्रिंट करता है मेरे पास एक एएसपी.NET वेब एप्लिकेशन है जो पीडीएफ उत्पन्न करता है। मैं iTextSharp का उपयोग कर रहा हूँ। क्या होता है कि आप एक बटन पर क्लिक करते हैं और यह डाउनलोड करता है। मेरा नियोक्ता बटन पर क्लिक करने और प्रिंट संवाद के साथ खोलने में सक्षम होना चाहता है।एक पीडीएफ जेनरेट करें जो स्वचालित रूप से
उत्तर
विधि 1: अपने पीडीएफ फाइलों अंदर एम्बेडेड जावास्क्रिप्ट का उपयोग आप एक javascript कॉल this.print(false)
(आप इस के लिए new PdfAction(PdfAction.PRINTDIALOG)
उपयोग कर सकते हैं) के साथ एक iText PDFAction वस्तु बनाने की कोशिश कर सकते हैं, और अपने पीडीएफ फाइल की OpenAction event के साथ संबद्ध।
iText जावा में कोड इस तरह दिखना चाहिए:
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("file.pdf"));
...
PdfAction action = new PdfAction(PdfAction.PRINTDIALOG);
writer.setOpenAction(action);
...
यह सी # में भी विभिन्न नहीं होना चाहिए।
एक तरफ ध्यान दें के रूप में, यह भी संभव Amyuni PDF Creator .Net साथ दस्तावेज़ वर्ग (सामान्य अस्वीकरण लागू होता है) में विशेषता "AutoPrint" सही पर सेट करके है।
acPDFCreatorLib.Initialize();
acPDFCreatorLib.SetLicenseKey("Amyuni Tech.", "07EFCDA00...BC4FB9CFD");
Amyuni.PDFCreator.IacDocument document = pdfCreator1.Document;
// Open a PDF document from file
System.IO.FileStream file1 = new System.IO.FileStream("test_input.pdf", FileMode.Open, FileAccess.Read, FileShare.Read);
IacDocument document = new IacDocument(null);
if (document.Open(file1, ""))
{
//Set AutoPrint
document.Attribute("AutoPrint").Value = true;
//Save the document
System.IO.FileStream file2 = new System.IO.FileStream("test_output.pdf", System.IO.FileMode.Create, System.IO.FileAccess.Write);
document.Save(file2, Amyuni.PDFCreator.IacFileSaveOption.acFileSaveView);
}
// Disposing the document before closing the stream clears out any data structures used by the Document object
document.Dispose();
file1.Close();
// terminate library to free resources
acPDFCreatorLib.Terminate();
यह दृष्टिकोण पीडीएफ फाइल एक पाठक है कि मुद्रण का ख्याल रखेंगे में खोलने के लिए की आवश्यकता है, और यह दोष यह है कि अगर फ़ाइल स्थानीय रूप से सहेजा जाता है, हर बार जब फ़ाइल बाद में खोला जाता है पर यह दिखा देंगे है प्रिंट संवाद।
विधि 2: ब्राउज़र से जावास्क्रिप्ट का उपयोग पाठक के साथ संवाद करने के लिए फ़ाइल को दिखाता है जो फ़ाइल दिखाता है।
<html>
<script language="javascript">
timerID = setTimeout("exPDF.print();", 1000);
</script>
<body>
<object id="exPDF" type="application/pdf" data="111.pdf" width="100%" height="500"/>
</body>
</html>
विचार ब्राउज़र में जावास्क्रिप्ट का उपयोग करने के पीडीएफ रीडर को निर्देश देने फ़ाइल को मुद्रित करने के लिए है:
मैं this SO प्रश्न में यह अन्य दृष्टिकोण है कि कोशिश कर रहा हो सकता है लायक पाया। यह दृष्टिकोण एक HTML पृष्ठ में एम्बेडेड पीडीएफ फाइलों पर काम करेगा।
मैं इसे मंगलवार (लंबे सप्ताहांत) पर आज़माउंगा और देख सकता हूं कि यह काम करता है या नहीं। कोड सी # से अलग नहीं है। –
यह काम किया! मैंने अभी पीडीएफएक्शन जोड़ा और यह बहुत अच्छा काम किया। –
मुझे खुशी है कि यह काम किया! कृपया ध्यान रखें कि यह दृष्टिकोण केवल तभी काम करेगा जब क्लाइंट पक्ष पर स्थापित पीडीएफ रीडर पर जावास्क्रिप्ट सक्षम है। – yms
जैसा कि यम द्वारा उल्लिखित है, आप एक पीडीएफ उत्पन्न कर सकते हैं जिसमें जावास्क्रिप्ट या "नामित" पीडीएफ एक्शन है जो दस्तावेज़ खोले जाने पर प्रिंट संवाद दिखाता है। हमने लेख Create an Auto-Print PDF में हमारे उत्पाद Gnostice PDFOne .NET का उपयोग करके इसका प्रदर्शन किया है। मैं अनुमान लगाता हूं IText में ऐसा ही कर सकता है। यदि ब्राउज़र में एडोब रीडर पीडीएफ प्लगइन के रूप में पंजीकृत है, तो दोनों विकल्प काम करेंगे।
एचटीएमएल जावास्क्रिप्ट विकल्प केवल आईई में काम करता प्रतीत होता है।
अस्वीकरण: मैं नोस्टिस के लिए काम करता हूं।
इस साइट पर एक अन्य समाधान ... मैं इस समाधान का उपयोग और महान
मैं क्रिस्टल रिपोर्ट से एक पीडीएफ स्ट्रीम है काम करते हैं, और मैं pdfsharp
लिंक के साथ openaction जोड़ें: http://www.vo1dmain.info/pdfsharp-howto-inject-javascript-into-pdf-autoprinting-functionality#comments
public static MemoryStream AddAutoPrint(Stream pdfStream, bool ShowPrintDialog = true, int NumCopies = 1)
{
PdfSharp.Pdf.PdfDocument doc = PdfSharp.Pdf.IO.PdfReader.Open(pdfStream, PdfSharp.Pdf.IO.PdfDocumentOpenMode.Import);
PdfSharp.Pdf.PdfDocument outputDocument = new PdfSharp.Pdf.PdfDocument();
for (int idx = 0; idx < doc.PageCount; idx++)
{
PdfSharp.Pdf.PdfPage p = doc.Pages[idx];
outputDocument.AddPage(p);
}
outputDocument.Info.Author = "author name";
string JSScript = string.Empty;
JSScript += "var pp = this.getPrintParams(); ";
if(NumCopies > 0)
{
JSScript += "pp.NumCopies = " + NumCopies.ToString() + "; ";
}
if(!ShowPrintDialog)
{
JSScript += "pp.interactive = pp.constants.interactionLevel.automatic; ";
}
JSScript += "this.print({printParams: pp}); ";
PdfSharp.Pdf.PdfDictionary dictJS = new PdfSharp.Pdf.PdfDictionary();
dictJS.Elements["/S"] = new PdfSharp.Pdf.PdfName("/JavaScript");
//dictJS.Elements["/JS"] = new PdfSharp.Pdf.PdfStringObject(outputDocument, "print(true);");
//dictJS.Elements["/JS"] = new PdfSharp.Pdf.PdfStringObject(outputDocument, "this.print({bUI: false, bSilent: true, bShrinkToFit: true});");
//dictJS.Elements["/JS"] = new PdfSharp.Pdf.PdfStringObject(outputDocument, "var pp = this.getPrintParams(); pp.NumCopies = 2; pp.interactive = pp.constants.interactionLevel.automatic; this.print({printParams: pp});");
dictJS.Elements["/JS"] = new PdfSharp.Pdf.PdfStringObject(outputDocument, JSScript);
outputDocument.Internals.AddObject(dictJS);
PdfSharp.Pdf.PdfDictionary dict = new PdfSharp.Pdf.PdfDictionary();
PdfSharp.Pdf.PdfArray a = new PdfSharp.Pdf.PdfArray();
dict.Elements["/Names"] = a;
a.Elements.Add(new PdfSharp.Pdf.PdfString("EmbeddedJS"));
a.Elements.Add(PdfSharp.Pdf.Advanced.PdfInternals.GetReference(dictJS));
outputDocument.Internals.AddObject(dict);
PdfSharp.Pdf.PdfDictionary group = new PdfSharp.Pdf.PdfDictionary();
group.Elements["/JavaScript"] = PdfSharp.Pdf.Advanced.PdfInternals.GetReference(dict);
outputDocument.Internals.Catalog.Elements["/Names"] = group;
MemoryStream ms = new MemoryStream();
outputDocument.Save(ms, false);
return ms;
}
अच्छी पुरानी फैशन ओएलई के बारे में कैसे? यह अभी भी सबसे सभी दस्तावेज़ परतों के द्वारा समर्थित है मैं की ... सी # में मैं सामान्य रूप से इस तरह .. जहां पीडीएफ, rtf, DOC, XLS ... कोई फर्क नहीं पड़ता ... वे सभी प्रिंट ..
कुछ करने के बारे में पता कर रहा हूँpublic void HandlePresentation(string fullFilePath, bool viewOnScreen, bool autoPrint)
{
ProcessStartInfo info = new ProcessStartInfo(fullFilePath);
if (autoPrint)
{
info.Verb = "Print";
info.WindowStyle = ProcessWindowStyle.Hidden; // not normally required
Process.Start(info);
info.Verb = string.Empty;
}
if (viewOnScreen)
{
info.WindowStyle = ProcessWindowStyle.Normal;
Process.Start(info);
}
}
मूल प्रश्न "एएसपी.नेट वेब एप्लिकेशन" निर्दिष्ट करते हैं। ओले इस परिदृश्य में मदद नहीं करता है क्योंकि आपके पास वेब पेज पर इसका उपयोग नहीं है। – yms
- 1. स्वचालित रूप से एसडब्ल्यूटी-विजेट्स पर आईडी जेनरेट करें
- 2. पीडीएफ व्यूअर पर स्वचालित रूप से रीफ्रेश कैसे करें?
- 3. एआई। जो एक यादृच्छिक रूप से जेनरेट 2 डी शहर
- 4. कच्चे HTML/CSS सामग्री से ASP.NET से पीडीएफ जेनरेट करें?
- 5. गतिशील सूची जो स्वचालित रूप से
- 6. पीडीएफ फ़ाइल जेनरेट और सेव करें
- 7. पीडीएफ असीमित रूप से डाउनलोड करें
- 8. पायथन ओआरएम जो स्वचालित रूप से जेनरेट/अपडेट टेबल और SQLite का उपयोग करता है?
- 9. पीडीएफ को स्वचालित रूप से छवियों में कनवर्ट करना
- 10. एक गैस मैक्रो में स्वचालित रूप से xmm रजिस्टर नाम जेनरेट करें?
- 11. पीडीएफ प्रोग्रामेटिक रूप से
- 12. स्वचालित रूप से एक अंतरफलक
- 13. पीडीएफ प्रोग्रामेटिक रूप से
- 14. spbinx- जेनरेट किए गए दस्तावेज़ को बिटबकेट विकी पर स्वचालित रूप से प्रकाशित कैसे करें?
- 15. स्वचालित रूप से इंटरनेट से कनेक्ट करें
- 16. स्वचालित रूप से VisualVM
- 17. स्वचालित रूप से जावा
- 18. स्वचालित रूप से साइन अप
- 19. स्वचालित रूप से जेनरेट किए गए आईओएस ऐप्स को कैसे कोडित करें?
- 20. मैवेन जार में स्वचालित रूप से xmlbeans जेनरेट कोड कैसे शामिल करें?
- 21. स्वचालित रूप से डाउनलोड
- 22. रिपोर्टिंग सेवाएं: जेनरेट की गई रिपोर्ट का पीडीएफ प्राप्त करें
- 23. स्वचालित रूप से एक वीएमवेयर छवि
- 24. पीडीएफ जेनरेट करना, आईई और एचटीटीपीएस
- 25. स्वचालित रूप से MongoDB
- 26. session_id() को कैसे प्राप्त/सेट करें या इसे स्वचालित रूप से जेनरेट किया जाना चाहिए?
- 27. स्वचालित रूप से RSpec
- 28. स्वचालित रूप से Minecraft
- 29. NH12ern85 स्वचालित रूप से
- 30. स्वचालित रूप से संग्रह
मुझे पूरा यकीन है कि यह संभव नहीं है। मैं एक पीडीएफ उत्पन्न नहीं करने की सिफारिश करता हूं, लेकिन एक वेब पेज जो विंडो को ट्रिगर करता है।प्रिंट() 'जैसे ही यह लोड हो जाता है। –
@ सैमिर समस्या यह है कि इसे वास्तव में एक पीडीएफ होना चाहिए क्योंकि यह लेबल है जो ज़ेबरा प्रिंटर द्वारा मुद्रित है। –
@ जो टायमैन: क्या यह एक छवि हो सकती है? एक पीएनजी या कुछ? आप इसे वेब पेज पर डाल सकते हैं। –