PDA

View Full Version : سوال: تبدیل فایل Word به Pdf و نمایش آن در برنامه



shahrokhkian
شنبه 24 تیر 1396, 10:49 صبح
سلام خدمت دوستان
یه برنامه کوچیک نوشتم که فایل ورد رو به PDF تبدیل میکنه و توی برنامه نمایش میده.


procedure TForm1.BtnConvertAndViewClick(Sender: TObject);
const
wdExportFormatPDF = 17;
var
Word, Doc: OleVariant;
begin
Word := CreateOleObject('Word.Application');
Doc := Word.Documents.Open('D:\Test.docx');
Doc.ExportAsFixedFormat('D:\Test.pdf', wdExportFormatPDF);
WebBrowser1.Navigate2('D:\Test.pdf');
Word.ActiveDocument.Close;
Word.Quit;
Word := UnAssigned;
Doc := UnAssigned;
end;

مشکل اینجاست که وقتی برای بار دوم از برنامه خواسته میشه که فایل رو تبدیل کنه و نمایش بده ارور زیر رو (فایل ضمیمه) نمایش میده.

کسی از دوستان پیشنهادی برای حل مشکل داره؟145764

ابوالفضل عباسی
شنبه 24 تیر 1396, 12:03 عصر
سلام.
دوست عزیز دو فرمان اخر که Unassigned میکنی رو بردار و ببین درست میشه یا نه.
نشد در اول شروع کد فرمان

Doc:= null
و یا

Doc:= nil
رو قرار بده ببین درست میشه یا نه.(این کار رو برای تمام متغیر های OleVariant انجام بده)

shahrokhkian
شنبه 24 تیر 1396, 13:59 عصر
سلام.
دوست عزیز دو فرمان اخر که Unassigned میکنی رو بردار و ببین درست میشه یا نه.
نشد در اول شروع کد فرمان

Doc:= null
و یا

Doc:= nil
رو قرار بده ببین درست میشه یا نه.(این کار رو برای تمام متغیر های OleVariant انجام بده)

متاسفانه این روش هم جواب نمیده
اگر بجای این خط


WebBrowser1.Navigate2('D:\Test.pdf');

از کد زیر استفاده کنم


ShellExecute(handle,'open',PChar('D:\Test.pdf'), '','',SW_SHOWNORMAL);

خطا نمیده، نمی‌دونم مشکل از کجاست

shahrokhkian
شنبه 24 تیر 1396, 15:55 عصر
سلام.
دوست عزیز دو فرمان اخر که Unassigned میکنی رو بردار و ببین درست میشه یا نه.
نشد در اول شروع کد فرمان

Doc:= null
و یا

Doc:= nil
رو قرار بده ببین درست میشه یا نه.(این کار رو برای تمام متغیر های OleVariant انجام بده)

حل شد دوست عزیز، فایل Pdf که توی WebBrowser نمایش داده میشه، نمیتونه در حالتی که هنوز در حال نمایشه دوباره ساخته بشه