J'essaie d'imprimer plusieurs documents Word (100 ou plus), chacun avec plusieurs pages une par une en utilisant la méthode document.printout. Tous les documents doivent rester dans la file d'attente d'impression jusqu'à ce que les pages soient ajoutées. Il fonctionne correctement avec quelques documents de moins de 50, mais lorsqu'il est testé avec 80 documents ou plus ayant plusieurs pages, les résultats deviennent incohérents.Impression de plusieurs fichiers Doc dans C# en utilisant document.printout mais il montre un comportement bizarre
J'ai essayé suivante:
boucle à travers tous les documents un par un quand la boucle extrémités fermer alors le mot objet com. Lorsque l'impression est effectuée, il met en file d'attente tous les docs parfaitement et la mise en file d'attente est également effectuée avec succès. Parfois, il met en file d'attente les documents, mais la mise en file d'attente ne se termine jamais et l'instance de mot est également libérée. cela entraîne des documents à manquer lors de l'impression. Veuillez confirmer si je dois continuer à attendre que la mise en file d'attente se termine à l'aide de wordApp.BackgroundPrintingStatus ou que la mise en file d'attente se termine une fois le document envoyé depuis l'application. Selon mon observation, même si je libère le mot com, le spooling d'objets est terminé mais parfois non. Veuillez suggérer? Voici l'extrait de code: var application = new Microsoft.Office.Interop.Word.Application(); essayer {
foreach (var fileName in fileNames)
{
if (File.Exists(fileName))
{
var _document = application.Documents.Open(fileName);
try
{
object copies = "1";
object pages = "";
object range = Microsoft.Office.Interop.Word.WdPrintOutRange.wdPrintAllDocument;
object items = Microsoft.Office.Interop.Word.WdPrintOutItem.wdPrintDocumentContent;
object pageType = Microsoft.Office.Interop.Word.WdPrintOutPages.wdPrintAllPages;
object oTrue = true;
object oFalse = false;
object missing = Type.Missing;
_document.PrintOut(ref oTrue, ref oFalse, ref range, ref missing, ref missing, ref missing,
ref items, ref copies, ref pages, ref pageType, ref oFalse, ref oTrue,
ref missing, ref oFalse, ref missing, ref missing, ref missing, ref missing);
}
catch (Exception ex)
{
Log(ex);
}
finally
{
_document.Close();
_document = null;
}
}
}
}
catch (Exception ex)
{
Log(ex);
}
finally
{
application.Quit();
Marshal.ReleaseComObject(application);
application = null;
}
Pouvez-vous poster un exemple de code qui montre votre approche actuelle? –
Code snipped ajouté dans le message – Rahber1