Nasıl bir web hizmetinden bir HTML belgesi yazdırabilirim?
# C bir web servisinden HTML yazdırmak istiyorum. Web Tarayıcı denetimi overkill olduğunu ve iyi hizmet bir ortamda çalışmaz, ne de çok sıkı güvenlik kısıtlamaları ile bir sistem üzerinde işliyor. Ücretsiz herhangi bir tür var .Basit bir HTML sayfasının baskı destekleyecek NET kütüphane? Burada düzgün çalışmaz ki ben, şimdiye kadar kodu.
public void PrintThing(string document)
{
if (Thread.CurrentThread.GetApartmentState() != ApartmentState.STA)
{
Thread thread =
new Thread((ThreadStart) delegate { PrintDocument(document); });
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
}
else
{
PrintDocument(document);
}
}
protected void PrintDocument(string document)
{
WebBrowser browser = new WebBrowser();
browser.DocumentText = document;
while (browser.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
browser.Print();
}
Bu UI-tip konuları çağrıldığında gayet iyi çalışıyor, ama hiçbir şey Hizmet Türü iş parçacığı çağrıldığında olur. ShowPrintPreviewDialog()
Print()
değişen aşağıdaki IE script hata veriyor
Hata: 'dialogArguments__._YANİ_' null veya bir nesne değil . PrintType ^ / ^ br . URL: res://ieframe./önizleme dll.çalışmaktadır
Küçük ve boş bir baskı önizleme iletişim kutusu görünür.
CEVAP
Komut satırında aşağıdakileri kullanarak yazdırabilirsiniz:
rundll32.exe %WINDIR%\System32\mshtml.dll,PrintHTML "%1"
%1 html dosyası yolu olduğu yazdırılacak dosya.
Eğer bellek (ya da geçici bir dosya olarak diske yazmak için gelemez) yazdırmak için bile kullanabilirsiniz:
using (Process printProcess = new Process())
{
string systemPath = Environment.GetFolderPath(Environment.SpecialFolder.System);
printProcess.StartInfo.FileName = systemPath @"\rundll32.exe";
printProcess.StartInfo.Arguments = systemPath @"\mshtml.dll,PrintHTML """ fileToPrint @"""";
printProcess.Start();
}
N. B. Bu sadece Windows sanırım yukarıda 2000 ve üzerinde çalışır.
Nasıl PHP ve HTML/XML ayrıştırma işlem...
Nasıl HTML kodu Sublime Text 2 kullana...
Nasıl sadece sayısal (0-9) HTML ınputb...
Nasıl bir bağlantı gibi davranan bir H...
Nasıl HTML Çeviklik paketi kullanmak i...