簡體   English   中英

將 PDF 文件列表打印到客戶的打印機

[英]Print a list of PDF files to Client's printer

我正在編寫一個 Web 應用程序,除此之外,它還會生成一個 PDF 文件列表:

public JsonResult BulkPrintExemptions()
        {
            List<FileContentResult> retValues = new List<FileContentResult>();
            var results = db.Permits.Where(m => m.Year == DateTime.Now.Year).Where(e => e.RecordDeleted == false).ToList();
            foreach (var result in results)
            {
                retValues.Add(GetPDF(result, "Exemption"));
            }
            return Json(retValues, JsonRequestBehavior.AllowGet);
        }

該列表將至少包含大約 400 個 PDF 文檔,用戶希望在沒有任何交互的情況下自動打印它們。

一旦我返回 FileContentResults 列表,我如何自動將它發送到用戶的默認打印機?

我相當確定我只需要遍歷列表並為每個列表調用 Acrobat Reader; 我只是不知道如何通過 javascript 做到這一點。

我怎么做? 或者,我願意接受更好的選擇。

全面披露,以協助選擇:

這是一個 C# 中的 MVC 應用程序。 最終用戶安裝了 Adob​​e Acrobat Reader(至少),因為它是“Office 桌面”圖像上的默認設置。

編輯添加:PDF 文件來自 SSRS,如果這有什么不同的話。

首先,對您的用戶來說,這聽起來是個糟糕的主意。 這可能會導致她的計算機在處理如此多的打印請求時被鎖定。

其次,這是可能的。 這個 SO 問題列出了一些選項,看起來Print.js可能是你最好的選擇。 那里的一些評論說它沒有打開打印對話框,所以它可能不需要用戶的交互; 但我真誠地希望它確實如此,因為允許網站在沒有用戶交互的情況下無限制地訪問打印機聽起來是一個糟糕的主意。

或者,如果它提示輸入這 400 多個 PDF 中的每一個,如果您可以將它們連接成一個 400 多頁的文檔,那么您將只有一個打印對話框。 在處理該請求時仍然可能會減慢/鎖定她的 PC。

您的網頁可以在/顯示網頁的計算機上執行的操作有嚴格的限制。 我們過去比較松懈。 它被濫用了。 所以它被修復了。 但我懷疑是否有人瘋到允許 JavaScript 發送打印訂單。

話雖如此,使用 Progamm 或什至可能安裝在客戶端的插件/擴展程序,這應該是可能的。

您可以使用特定的 Protocolls 注冊程序,就像使用文件擴展名一樣。 事實上,桌面上的 Steam 鏈接就是這樣工作的——它們是帶有自定義“steam:”協議的 URL。 並且所有瀏覽器都注冊了通用文件名和通用協議。

對於這么寬泛的問題,這大概是我能給你的最佳答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM