برمجيا طباعة الدليل من مستندات word... الملف الأخير دائما تخطي

StackOverflow https://stackoverflow.com/questions/670060

سؤال

أواجه مشكلة عند محاولة برمجيا طباعة الدليل من مستندات word.في هذا المثال, أنا أحاول طباعة الملفات فقط مع "3_" البادئة.المشكلة أن الملف لا تتم طباعة ما لم يكن هناك نوعان من الملفات مع 3_ البادئة.لقد كنت أبحث حول إلى الأبد إلى حل هذه المشكلة.هل هناك شيء خاطئ مع الطريقة أنا فتح الملف ؟ أنها لا تعمل إلا عندما يكون هناك نوعان من الملفات في الدليل ، وفي هذه الحالة فإنه سيتم طباعة واحد فقط من اثنين من الملفات.

تحرير:أنا جربت messagebox و المسار الصحيح.اسم الملف الصحيح.أيضا, إذا كنت أنا أشاهد الطابعة في مجلد الطابعات وثيقة فلاش تصل لفترة ثم تختفي ( لدي الطباعة مؤقتا بحيث أستطيع أن أرى الإخراج).إذا كان word هو يعطيني خطأ, لماذا لا تظهر ؟ و لماذا هذا العمل إذا كان هناك نوعان من الملفات في الدليل مع 3_ البادئة ؟

تحرير:أعتقد أنها مشكلة مع النسخة المطبوعة (طريقة).عندما تعيين التطبيق إلى مرئية و تشغيله, يتم فتح المستند بخير ، ولكن يتم طباعة أي شيء.لا يمكن فتح المستند يدويا الطباعة (الذي يعمل بشكل جيد).

تحرير:شكرا لكم جميعا على الإجابات.الخلفية المعلمة في المطبوعة (طريقة) قضية.البرنامج استقال قبل الطباعة يمكن تماما التخزين المؤقت (الذي هو السبب في أنني سوف نرى وثيقة فلاش في قائمة انتظار الطباعة و تختفي.بإيقاف تشغيل الطباعة في الخلفية المطلوبة الوثيقة أن تبقى مفتوحة و الطباعة ، الذي كان مفتاح.شكرا لك

string[] filesToCheck = Directory.GetFiles(clientDirectoryPath);
    Object filename = null;
        for (int i = 0; i < filesToCheck.Count();i++ )
        {
            if(filesToCheck[i].Contains("3_"))
            {
                filename = filesToCheck[i];
                wrdDoc = wrdApp.Documents.Open(ref filename, ref oMissing, ref oTrue, ref oFalse,
                                               ref oMissing, ref oMissing,
                                               ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                               ref oMissing,
                                               ref oMissing, ref oMissing, ref oMissing, ref oMissing,
                                               ref oMissing);
                wrdDoc.PageSetup.FirstPageTray = letterHeadTray;
                wrdDoc.PageSetup.OtherPagesTray = defaultTray;
                wrdDoc.PrintOut(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,
                                ref oMissing, ref oMissing, ref oMissing);
                wrdDoc.Close(ref oFalse, ref oMissing, ref oMissing);
                wrdDoc = null;
            }
        }

نصائح أخرى

ومحاولة استخدام

string[] files = Directory.GetFiles(dir, "3_*.doc");
foreach(string file in files) { }

وبدلا من

for (int i = 0; i < filesToCheck.Count(); i++ ) { }

هناك لا يبدو أن يكون أي شيء خاطئ مع نشر خوارزمية.يمكنك محاولة ما يلي

  1. إضافة نقطة توقف و تأكد filesToCheck كائن يحتوي على كافة أسماء الملفات في ذلك ؟ من الممكن هذه القيمة غير صحيحة و رمي قبالة الخاص بك الخوارزمية
  2. بدلا من طباعة المستند بدلا من ذلك تغيير التعليمات البرمجية إلى رمي مربع رسالة لكل اسم الملف.التي من شأنها القضاء على الطباعة الفعلية كونها جزءا من المشكلة (لا أرى كيف يمكن أن يكون).

كما يمكنك إضافة التعليمات البرمجية التي يحصل filesToCheck الكائن ؟

تحرير

المرجع المذكور أن جميع الملفات هي بالتأكيد من خلال الحصول على.محاولة التفاف عملية الطباعة في try/catch ومعرفة ما إذا كان هناك أي استثناءات التي القيت التي تمنع الملفات من المطبوعة.

وحاول أن لا تستخدم "_" في اسم الملف. رأيت بعض المراوغات غريبة من قبل مع هذا الشاحن والمطبوعة.

scroll top