我是c#的新手.我正在网上寻找关于如何打印pdf的教程,但找不到一个.
然后我想,是否可以使用itextpdf读取它,就像这里提到的那样
使用VB.NET或C#中的itextsharp dll读取PDF内容
然后打印出来.如果是这样,怎么样?
我在一个可以接受已经创建的PDF文件并直接发送到打印机的库之后.我不希望用户需要安装Adobe Reader或其他任何东西,应用程序将生成PDF并且我想要打印它.
我正在使用Visual Studio 2010(C#)编写Web应用程序.我想在单击按钮时将PDF(保存在我的电脑中)发送到打印机.
为了创建PDF,我使用了iTextSharp.我试过这个,但它只是打开Adobe Reader:
proc.StartInfo.FileName = @"C:\Archivos de programa\Adobe\Reader10.0\Reader\AcroRd32.exe";
proc.StartInfo.Arguments = String.Format(@"/p /h {0}", pdfFileName);
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
Run Code Online (Sandbox Code Playgroud)
先感谢您!!!
我正在尝试创建一个Electron JS应用程序,其目的是打印字母大小的PDF.
这是我的打印代码片段:
win = new BrowserWindow({
width: 378,
height: 566,
show: true,
webPreferences: {
webSecurity: false,
plugins: true
}
});
// load PDF
win.loadURL('file://' + __dirname + '/header1_X_BTR.pdf');
// if pdf is loaded start printing
win.webContents.on('did-finish-load', () => {
win.webContents.print({silent: true, printBackground:true});
});
Run Code Online (Sandbox Code Playgroud)
我的问题是:如果我让print({silent:true})我的打印机打印一个空页面.如果有print({silent:false}),打印机的打印方式与屏幕截图相同,包括标题,控件等.
我需要对PDF内容进行静音打印,而且我无法在数天内完成这项工作.有没有人与Electron有同样的经历?
我想通过GhostScript在Windows的网络打印机上打印PDF文件.
(我不想使用Adobe Reader)
我已经阅读了gswin32c.exe,它可以完成这项工作.
我尝试了许多命令,并且找不到如何强制gs在我的(Windows默认)网络驱动器上打印PDF的方法.
我不需要点精确网络打印机 - 默认可以使用.但如果没有这样的选择,我也很高兴通过打印机名称.(我尝试过使用param -SDevice ="\ server_IP\printer_name",但这也不起作用......)
在Windows cmd下运行的命令:
gswin32c -dPrinted -dBATCH -dNOPAUSE -dNOSAFER -q -dNumCopies=1 -sDEVICE=ljet4 -sOutputFile="\\spool\\\Server_Name\Printer_name" "C:\test.pdf"
Run Code Online (Sandbox Code Playgroud)
基于上面创建的方法 - 没有工作和thorws异常.(错误代码= 1)
/// <summary>
/// Prints the PDF.
/// </summary>
/// <param name="ghostScriptPath">The ghost script path. Eg "C:\Program Files\gs\gs8.71\bin\gswin32c.exe"</param>
/// <param name="numberOfCopies">The number of copies.</param>
/// <param name="printerName">Name of the printer. Eg \\server_name\printer_name</param>
/// <param name="pdfFileName">Name of the PDF file.</param>
/// <returns></returns>
public bool PrintPDF (string ghostScriptPath, int numberOfCopies, string printerName, string pdfFileName) …Run Code Online (Sandbox Code Playgroud) 我需要从硬盘打印多个 PDF 文件。我找到了如何将文件发送到打印机的完美解决方案。此解决方案的问题在于,如果您想打印多个文件,则必须等待每个文件完成该过程。
在命令 shell 中,可以对多个文件名使用同一命令: print /D:printerName file1.pdf file2.pdf
一次调用即可将它们全部打印出来。
不幸的是,仅仅将所有文件名放入其中ProcessStartInfo是行不通的
string filenames = @"file1.pdf file2.pdf file3.pdf"
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "print";
info.FileName = filenames;
Run Code Online (Sandbox Code Playgroud)
它也不会将文件名Arguments放在Process
info.Arguments = filename;
Run Code Online (Sandbox Code Playgroud)
我总是收到错误:找不到文件!
如何通过一个进程调用打印多个文件?
这是我现在如何使用它的示例:
public void printWithPrinter(string filename, string printerName)
{
var procInfo = new ProcessStartInfo();
// the file name is a string of multiple filenames separated by space
procInfo.FileName = filename;
procInfo.Verb = "printto";
procInfo.WindowStyle = ProcessWindowStyle.Hidden;
procInfo.CreateNoWindow = true; …Run Code Online (Sandbox Code Playgroud) 我在使用C#使用pdfium显示pdf时遇到了一些麻烦。我读了另一个问题:
我下载了pdfiumViewer程序包,但是在编译时,它说找不到pdfium库。因此,我下载了软件包“ pdfium.net SDK”,它可以运行,但不是免费的,它是受限版本。我想知道的是:我们必须拥有软件包“ pdfium.net SDK”才能使“ pdfiumViewer”正常工作吗?
我想用C#打印出一个文档.我有两个按钮.btnUpload上传或选择一个word文件.btnPrint将要上传的文件发送到打印机.我怎样才能做到这一点?现在使用:
private void btnUpload_Click(object sender, EventArgs e)
{
string fileName;
// Show the dialog and get result.
OpenFileDialog ofd = new OpenFileDialog();
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK) // Test result.
{
fileName = ofd.FileName;
var application = new Microsoft.Office.Interop.Word.Application();
//var document = application.Documents.Open(@"D:\ICT.docx");
var document = application.Documents.Open(@fileName);
}
}
private void btnPrint_Click(object sender, EventArgs e)
{
PrintDialog printDlg = new PrintDialog();
PrintDocument printDoc = new PrintDocument();
printDoc.DocumentName = "fileName";
printDlg.Document = printDoc;
printDlg.AllowSelection = true;
printDlg.AllowSomePages = …Run Code Online (Sandbox Code Playgroud)