打印时更改 PDF 文件名 - 另存为操作

Posted

技术标签:

【中文标题】打印时更改 PDF 文件名 - 另存为操作【英文标题】:Change PDF File name while Print - Save as action 【发布时间】:2021-10-27 12:31:11 【问题描述】:

我在 iframe 窗口中显示 PDF 文件,我的下一个操作是使用 javascript 打印该 iframe。文件正在打印窗口中打开,但单击 - 在打印窗口中另存为 PDF 默认选项后,它在窗口对话框中显示 actionname( 方法名称) DownloadReport 作为文件名。我必须在 Windows 对话框中显示不同的文件名。在这里我正在打印员工 pdf 报告,我必须将文件名设置为employeeId。该怎么做?

下面是打印的javascript代码-

$('#printFrame').attr('src', "/Employee/DownloadReport?id=" + empid + "&isEmp=" + flag + "&act=print");

            $('#printFrame').load(function () 
                
                window.frames['frm'].focus();
                window.frames['frm'].print();
                
                
            );

【问题讨论】:

【参考方案1】:

使用此方法返回 Pdf 响应

   private FileResult ExportDocument(byte[] document, string format, string fileName, bool isInline)
        
            string contentType;
            string disposition = (isInline) ? "inline" : "attachment";

            switch (format.ToLower())
            
                case "docx":
                    contentType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
                    break;
                case "xls":
                    contentType = "application/vnd.ms-excel";
                    break;
                case "xlsx":
                    contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
                    break;
                case "mht":
                    contentType = "message/rfc822";
                    break;
                case "html":
                    contentType = "text/html";
                    break;
                case "txt":
                case "csv":
                    contentType = "text/plain";
                    break;
                case "png":
                    contentType = "image/png";
                    break;

                case "Jpeg":
                    contentType = "image/Jpeg";
                    break;
                default:
                    contentType = String.Format("application/0;charset=utf-8", format);
                    break;
            

            Response.AddHeader("Content-Disposition", String.Format("0; filename=1", disposition, fileName));
            return File(document, contentType);
        

你可以像这样使用它

return ExportDocument(fromFileOrMemoryStream.ToArray(), "pdf", "myCustomReportName", true);

【讨论】:

你没有得到我的问题。我在打印窗口操作中遇到问题。单击另存为 pdf 时 - 文件名将作为操作名/方法名出现。我想要差异。保存文件的窗口对话框中的文件名。 我找到你了兄弟,看看你会找到的解决方案:) 它不工作。我试过你的方法。在打印窗口中单击另存为选项时,它仍然在窗口对话框中将方法名显示为文件名。

以上是关于打印时更改 PDF 文件名 - 另存为操作的主要内容,如果未能解决你的问题,请参考以下文章

如何将html文件转成pdf 在线转换

将excel另存为pdf,将其方向更改为水平

Java Apache POI Excel 另存为 PDF

谁知道怎么把网页上的内容转成 PDF文件,急!

PyPDF2如何实现按照PDF页码提取后并另存为PDF格式文件?

html文件怎么转换成pdf文件