Altbilgi içeriğine atla
IRONWORD KULLANıMı

C# Yazdirma Nasil Nasil Yapılır: Adim Adim Kılavuz

Bu öğreticiye hoş geldiniz, burada C# Konsol Uygulamasında Microsoft Interop kullanarak Word belgelerinin nasıl yazdırılacağını inceleyeceğiz. Bu başlangıç ​​seviyesindeki kılavuz, Microsoft Word belgelerini programlı olarak yazdırma adımlarında size rehberlik edecektir.

Ön Koşullar

Koda dalmadan önce, birkaç şeyi ayarlamak önemlidir:

  • Microsoft Word Kurulumu: Sisteminize Microsoft Word yüklü olduğundan emin olun. Değilse, bilgisayarınızın resmi Microsoft websitesine veya uygulama mağazasına gidip yükleyin.

  • Visual Studio Kurulumu: Konsol Uygulaması oluşturabilme yeteneğine sahip Visual Studio yüklü olmalıdır. Eğer yeni başlıyorsanız, ihtiyaçlarımız için yeterli ve ücretsiz olan Visual Studio Community'yi indirmenizi öneririm.

  • Bir Word Belgesi: Test amaçlı bilgisayarınızda hazır bir örnek Word belgesine sahip olun. Bu göndereceğimiz belge olacak.

Ortamı Kurma

Yeni Bir Konsol Uygulaması Oluşturun

  1. Visual Studio'yu açın.
  2. "Yeni proje oluştur" düğmesine tıklayın.
  3. "Console App" araması yapın ve uygun C# şablonunu seçin.
  4. Projenize isim verin (örneğin, "InteropPrintConsoleTutorial") ve uygun bir konum seçin.

Interop Referansı Ekleme

Interop kullanımı, Microsoft Office Interop kütüphanesine bir referans gerektirir. İşte nasıl ekleneceği:

  1. Visual Studio'da Çözüm Gezgini'nde Konsol projenize sağ tıklayın.
  2. Ekleyi Gez > Referans.
  3. Başvuru Yöneticisi penceresinde, COM sekmesine gidin.
  4. Listeyi filtrelemek için arama çubuğuna "Microsoft Word" yazın.
  5. Sonuçlardan, "Microsoft Word xx.x Objekt Kütüphanesi"ni seçin (xx.x sürüm numarasını belirtir).
  6. Referansı eklemek için Tamam düğmesine tıklayın.

NuGet Paket Yöneticisi'ni kullanarak yükleyebilirsiniz.

NuGet Paket Yonetici'sini kullanarak `Microsoft.Office.Interop.Word` kutuphanesini de yukleyebilirsiniz.

Uygulama Ayarlarını Doğrulama

Uygulamanızın hedef çerçevesinin Interop kütüphanesi ile uyumlu olduğundan emin olun. Bunu, Proje Gezgini'ndeki projenize sağ tıklayarak, Özellikler'i seçerek ve ardından Uygulama sekmesinin altında Hedef çerçeveyi görüntüleyerek kontrol edebilirsiniz. Interop kütüphanesinin sürümü ile ilgili sorun yaşarsanız, gerekli paketi veya montajı indirmeyi veya hedef çerçeve sürümünü ayarlamayı düşünün.

Çevre ayarlandıktan sonra, kodlama sürecine geçebilirsiniz.

Belge Nesnesini Anlama

Belge nesnesi, Word belgeleriyle uğraşırken Interop hizmetlerinin kalbinde yer alır. Bu nesne, bir Microsoft Word belgesini temsil eder ve tüm işlevselliğini sağlar.

Yaygın bir görev belgeyi açmaktır:

using Word = Microsoft.Office.Interop.Word;

// Object needed to avoid passing specific parameters
object oMissing = Type.Missing;

// File path to the Word document you want to open
object fileName = @"C:\path_to_document\document.docx";

// Create a new instance of the Word application
Word.Application wordApp = new Word.Application();

// Open the document with specified parameters
Word._Document wordDoc = wordApp.Documents.Open(
    ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing);
using Word = Microsoft.Office.Interop.Word;

// Object needed to avoid passing specific parameters
object oMissing = Type.Missing;

// File path to the Word document you want to open
object fileName = @"C:\path_to_document\document.docx";

// Create a new instance of the Word application
Word.Application wordApp = new Word.Application();

// Open the document with specified parameters
Word._Document wordDoc = wordApp.Documents.Open(
    ref fileName, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
    ref oMissing);
Imports Word = Microsoft.Office.Interop.Word

' Object needed to avoid passing specific parameters
Private oMissing As Object = Type.Missing

' File path to the Word document you want to open
Private fileName As Object = "C:\path_to_document\document.docx"

' Create a new instance of the Word application
Private wordApp As New Word.Application()

' Open the document with specified parameters
Private wordDoc As Word._Document = wordApp.Documents.Open(fileName, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing)
$vbLabelText   $csharpLabel

ref oMissing ile coklu parametreler goz korkutucu olabilir, fakat bircogu opsiyonel olan sayisiz arguman bekleyen Open metodu icin bu gereklidir.

Baskı İşlevselliğini Uygulama

Çevremiz ayarlandığında ve belge nesnesini anladığımızda, Word belgelerini yazdırmanın ana işlevine dalmanın zamanı gelmiştir.

Temel Word Belgesi Yazdırma

Belgeyi yazdırmak için aşağıdaki yöntemi kullanabilirsiniz:

// Method to print the document using default printer settings
private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut(); // Sends the document to the default printer
}
// Method to print the document using default printer settings
private void ButtonPrint_Click(object sender, EventArgs e)
{
    wordDoc.PrintOut(); // Sends the document to the default printer
}
' Method to print the document using default printer settings
Private Sub ButtonPrint_Click(ByVal sender As Object, ByVal e As EventArgs)
	wordDoc.PrintOut() ' Sends the document to the default printer
End Sub
$vbLabelText   $csharpLabel

Bu yöntem, belgeyi varsayılan yazıcıya varsayılan ayarları kullanarak gönderir.

Özelleştirilmiş Word Belgelerini Yazdırma

Bir yazıcı diyalogunu tanıtmak, yazıcı ayarlarını özelleştirmek veya birden fazla sayfa yazdırmak istiyorsanız, daha ayrıntılı bir yaklaşıma ihtiyaçınız olacaktır:

// Method to print the document with custom settings
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    // Number of copies to print
    object copies = "1";

    // Page range to print, e.g., pages 1 to 3
    object pages = "1-3";

    // Print the document with specified copies and page range
    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
// Method to print the document with custom settings
private void ButtonPrintWithSettings_Click(object sender, EventArgs e)
{
    // Number of copies to print
    object copies = "1";

    // Page range to print, e.g., pages 1 to 3
    object pages = "1-3";

    // Print the document with specified copies and page range
    wordDoc.PrintOut(Copies: ref copies, Pages: ref pages);
}
' Method to print the document with custom settings
Private Sub ButtonPrintWithSettings_Click(ByVal sender As Object, ByVal e As EventArgs)
	' Number of copies to print
	Dim copies As Object = "1"

	' Page range to print, e.g., pages 1 to 3
	Dim pages As Object = "1-3"

	' Print the document with specified copies and page range
	wordDoc.PrintOut(Copies:= copies, Pages:= pages)
End Sub
$vbLabelText   $csharpLabel

Yukarıdaki kaynak kodunda sayfa aralığını ve kopya sayısını belirtiyoruz, ancak potansiyel özelleştirmeler oldukça fazladır.

Yazıcı Ayarlarını Özelleştirme

Yazıcı ayarlarını değiştirme yeteneği programlı kontrolü ayıran şeydir. İster yazıcı ayarlarını ayarlamak, belirli bir yazıcı tanımlamak, ister belgeyi sessizce yazdırmak isteyin, hepsi Interop ile erişilebilir.

Sesiz Yazdırma

Sesiz yazdırma, belgeyi kullanıcı etkileşimleri olmadan yazıcıya göndermenin tümüdür:

// Object to determine whether to print in the background or not
object background = false;

// Print the document silently (no user interactions)
wordDoc.PrintOut(Background: ref background);
// Object to determine whether to print in the background or not
object background = false;

// Print the document silently (no user interactions)
wordDoc.PrintOut(Background: ref background);
' Object to determine whether to print in the background or not
Dim background As Object = False

' Print the document silently (no user interactions)
wordDoc.PrintOut(Background:= background)
$vbLabelText   $csharpLabel

Bir Yazıcı Belirtme

Varsayılan olmayan belirli bir yazıcıda bir belge yazdırmak için:

// Set the active printer to a specified printer by name
wordApp.ActivePrinter = "Printer Name";

// Print the document using the specified printer
wordDoc.PrintOut();
// Set the active printer to a specified printer by name
wordApp.ActivePrinter = "Printer Name";

// Print the document using the specified printer
wordDoc.PrintOut();
' Set the active printer to a specified printer by name
wordApp.ActivePrinter = "Printer Name"

' Print the document using the specified printer
wordDoc.PrintOut()
$vbLabelText   $csharpLabel

Gelişmiş Yazıcı Ayarları

Yazıcıyı belirtmenin ötesinde, yazıcı ayarlarını ayarlamak gerekebilir:

// Creates a PrintDialog to allow the user to choose printer settings
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    // Sets the Word application's active printer to the user's choice
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;

    // Prints the document using user's selected printer settings
    wordDoc.PrintOut();
}
// Creates a PrintDialog to allow the user to choose printer settings
PrintDialog printDialog = new PrintDialog();
if (printDialog.ShowDialog() == DialogResult.OK)
{
    // Sets the Word application's active printer to the user's choice
    wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName;

    // Prints the document using user's selected printer settings
    wordDoc.PrintOut();
}
' Creates a PrintDialog to allow the user to choose printer settings
Dim printDialog As New PrintDialog()
If printDialog.ShowDialog() = DialogResult.OK Then
	' Sets the Word application's active printer to the user's choice
	wordApp.ActivePrinter = printDialog.PrinterSettings.PrinterName

	' Prints the document using user's selected printer settings
	wordDoc.PrintOut()
End If
$vbLabelText   $csharpLabel

Bu şekilde, kullanıcı yönlendirme, iki taraflı yazdırma gibi ayarları manuel olarak ayarlayabilir.

IronWord Tanıtımı

Microsoft Interop, Word belgelerini yönetme işlevselliği sağlarken, ciddi ticari kullanım için çok güçlü ve verimli değildir. IronWord—Interop için daha üstün bir alternatif olan C# için Word DOCX dosyası işleme. IronWord, C#'de Excel dosyalarını sorunsuz okuma, yazma ve manipüle etme olanağı sunar. IronWord ile nasıl başlayacağınızı öğrenin.

IronXL for .NET: C# Exel Kutuphanesi

Sonuç

Bu öğreticide, Microsoft Interop'un bir C# Konsol Uygulamasında Word belgelerini programatik olarak yazdırmak için kullanılmasındaki adımları ele aldık. Yazdırma diyalogunu nasıl göstereceğimizi, özel yazdırma ayarlarını belirleme ve belirli bir yazıcı seçmek veya bir sayfa aralığı tanımlamak gibi çeşitli yazdırma yönleri nasıl kontrol edeceğimizi gördük. Interop, temel yetenekler sunsa da, IronWord gibi güçlü alternatifler olduğunu belirtmek gerekir.

Sıkça Sorulan Sorular

C#'ta Word belgelerini yazdırmak için ön koşullar nelerdir?

C#'ta Word belgelerini yazdırmak için bilgisayarınıza Microsoft Word ve Visual Studio kurulmuş olmalıdır. Alternatif olarak, belge işlemleri için Microsoft Word kurulumuna gerek olmayan IronWord kullanılabilir.

C#'ta Word belge yazdırmak için Visual Studio'da yeni bir Konsol Uygulaması nasıl kurulur?

Visual Studio'da yeni bir Konsol Uygulaması kurmak için IDE'yi açın, 'Yeni proje oluştur'u seçin, 'Konsol Uygulaması'nı arayın, C# şablonunu seçin ve projenize uygun bir isim verin.

C#'ta Word belge yazdırmak için Microsoft Interop kütüphanesine nasıl referans eklenir?

Visual Studio'da projenize sağ tıklayın, Ekle > Referans'ı seçin ve COM sekmesi altında 'Microsoft Word xx.x Nesne Kütüphanesi'ni seçin. IronWord ile COM referanslarına gerek kalmadan Word belgelerini yönetebilirsiniz.

Word Interop hizmetlerinde Belge Nesnesinin rolü nedir?

Interop hizmetlerindeki Belge Nesnesi, Microsoft Word belgesini temsil eder ve belgenin programlı olarak manipüle edilmesine olanak tanır. IronWord, eşdeğer yetenekler sunar ve performans ile verimliliği artırır.

C#'ta varsayılan yazıcı ayarlarını kullanarak bir Word belgesini nasıl yazdırırım?

Interop'ta wordDoc.PrintOut() yöntemini kullanarak varsayılan yazıcı ayarlarıyla bir Word belgesini yazdırabilirsiniz. IronWord, ayarlar üzerinde daha fazla kontrol sunarak daha optimize bir yazdırma süreci sağlar.

C#'ta Word belgeleri için yazdırma ayarlarını özelleştirmeye yönelik adımlar nelerdir?

Baskı ayarlarını özelleştirmek için, kopya sayısı veya sayfa aralığı gibi belirli parametrelerle PrintOut yöntemini kullanın. Örneğin Copies: ref copies ve Pages: ref pages IronWord, özelleştirilebilir yazdırma için benzer seçenekler sunar.

C#'ta sessiz yazdırma nasıl çalışır?

Sessiz yazdırma, wordDoc.PrintOut(Background: ref background) yönteminde Background parametresini false olarak ayarlayarak belgelerin kullanıcı etkileşimi olmadan yazdırılmasına olanak tanır. IronWord, sessiz yazdırmayı etkili bir şekilde destekler.

C#'ta Word belgelerini yazdırmak için varsayılan olmayan bir yazıcı nasıl seçilir?

wordDoc.PrintOut() yöntemini çalıştırmadan önce wordApp.ActivePrinter yazarak istenen yazıcı adını belirleyebilirsiniz. IronWord, yazıcı seçimi için benzer işlevsellik sağlar.

C#'ta Word belgelerinin işlenmesi için IronWord kullanmanın faydaları nelerdir?

IronWord, Word belgelerinin sağlam ve etkili bir şekilde işlenmesini sağlar ve Microsoft Word kurulumuna gerek kalmadan C#'ta DOCX dosyalarının sorunsuz bir şekilde okunmasına, yazılmasına ve manipüle edilmesine olanak tanır.

C#'ta Word belgeleri yazdırırken özelleştirme için bir print diyaloğu nasıl tanıtılır?

Yazdırma diyaloğu tanıtmak için PrintDialog sınıfını kullanarak kullanıcıların yazdırma ayarlarını seçmelerine olanak tanıyabilirsiniz, ardından yazdırmadan önce wordApp.ActivePrinter'ı seçilen yazıcı adını ayarlayın. IronWord de kullanıcı tarafından özelleştirilebilir yazdırma diyaloglarını destekler.

Jordi Bardia
Yazılım Mühendisi
Jordi Python, C# ve C++ konularında en yetkin, Iron Software'deki yeteneklerini kullanmadığı zamanlarda; oyun programlıyor. Ürün testi, ürün geliştirme ve araştırma sorumluluklarını paylaşan Jordi, sürekli ürün gelişimine büyük değer katıyor. Çeşitli deneyimleri onu ...
Daha Fazlasını Oku

Iron Destek Ekibi

Haftanın 5 günü, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara