Neste tutorial passo a passo, vamos elaborar como imprimir documento do Word em C# sem interoperabilidade e sem automação. Usaremos o aplicativo Windows Forms para imprimir o Word DOCX em C# usando uma caixa de diálogo de impressora.
Etapas para imprimir documento do Word em C# sem interoperabilidade
- Instale o pacote Aspose.Words for .NET do NuGet.org
- Adicionar referência aos namespaces Aspose.Words e Aspose.Words.Rendering
- Definir licença do Aspose.Words para .NET usando o método SetLicense
- Crie um novo objeto Document e carregue o documento DOCX
- Crie um novo objeto PrintDialog e defina as propriedades da caixa de diálogo da impressora
- Crie o objeto PrintPreviewDialog e defina o objeto AsposeWordsPrintDocument e outras propriedades
- Anexar evento para ativar a caixa de diálogo da impressora
- Por fim, mostre a caixa de diálogo da impressora ao usuário
Nas etapas acima, estamos carregando o documento do Word no objeto Document, definindo as propriedades da caixa de diálogo da impressora e passando o documento para a instância da caixa de diálogo da impressora criada. Essas etapas ajudam a imprimir o documento do Word em C# usando uma caixa de diálogo de impressora do Windows. Adicionaremos um tópico de instruções separado, para mostrar como imprimir um documento do Word sem uma caixa de diálogo de impressora.
Código para imprimir documento do Word em C# sem automação
using System; | |
using System.Windows.Forms; | |
//Add reference to Aspose.Words for .NET API | |
//Use following namespaces to print word document on a printer | |
using Aspose.Words; | |
using Aspose.Words.Rendering; | |
namespace PrintWordDocumentWithoutInterop | |
{ | |
public partial class PrintWordDocumentWithoutInterop : Form | |
{ | |
public PrintWordDocumentWithoutInterop() | |
{ | |
InitializeComponent(); | |
//Set license before printing word document to printer | |
Aspose.Words.License AsposeWordsLicense = new Aspose.Words.License(); | |
AsposeWordsLicense.SetLicense(@"c:\asposelicense\license.lic"); | |
} | |
private void PrintWordDocumentButton_Click(object sender, EventArgs e) | |
{ | |
//load the Microsoft Word document to print in Windows application | |
Document WordDocumentToPrint = new Document("WordDocumentToPrint.docx"); | |
//create Windows Forms print dialog | |
PrintDialog WindowsPrintDialog = new PrintDialog(); | |
//Set properties of the Windows Print Dialog | |
WindowsPrintDialog.PrinterSettings.MinimumPage = 1; | |
WindowsPrintDialog.PrinterSettings.MaximumPage = WordDocumentToPrint.PageCount; | |
WindowsPrintDialog.PrinterSettings.FromPage = 1; | |
WindowsPrintDialog.PrinterSettings.ToPage = WordDocumentToPrint.PageCount; | |
WindowsPrintDialog.AllowSomePages = true; | |
//Do not proceed if user didn't accept printer settings | |
if (WindowsPrintDialog.ShowDialog() != DialogResult.OK) | |
return; | |
//Create PrintDocument boject and pass printer settings | |
AsposeWordsPrintDocument PrintDocument = new AsposeWordsPrintDocument(WordDocumentToPrint); | |
PrintDocument.PrinterSettings = WindowsPrintDialog.PrinterSettings; | |
//Create print preview dialog object and pass on Word document | |
PrintPreviewDialog WindowsPrintPreviewDialog = new PrintPreviewDialog(); | |
WindowsPrintPreviewDialog.Document = PrintDocument; | |
//Set print preview dialog settings | |
WindowsPrintPreviewDialog.Document.DocumentName = WordDocumentToPrint.OriginalFileName; | |
WindowsPrintPreviewDialog.PrintPreviewControl.Zoom = 1; | |
WindowsPrintPreviewDialog.WindowState = FormWindowState.Maximized; | |
WindowsPrintPreviewDialog.MinimizeBox = true; | |
WindowsPrintPreviewDialog.ShowInTaskbar = true; | |
//Attach even to activate print dialog and bring it to front. | |
WindowsPrintPreviewDialog.Shown += WindowsPrintPreviewDialog_Shown; | |
//Display the print preview dialog so user can print | |
WindowsPrintPreviewDialog.ShowDialog(); | |
} | |
private static void WindowsPrintPreviewDialog_Shown(object sender, EventArgs e) | |
{ | |
//activate print view dialog for printing by bringging to the front | |
((PrintPreviewDialog)sender).Activate(); | |
} | |
} | |
} |
O código acima em C# print Word document sem abrir o próprio arquivo DOCX ou DOC. Ele define as propriedades da caixa de diálogo de impressão junto com a passagem do próprio documento e, em seguida, permite que o usuário imprima o documento.