با سلام.
من برای انجام یه پروژه به یه مشکل بر خوردم. باید در بخشی از برنامه فایلهای ورد رو به تصویر تبدیل کنم به طوری که با همه ورژنهای Word همخونی داشته باشه. ولی دقیقا نمی دونم چطور از کامپوننتهای Word استفاده کنم یا این که کامپوننت دیگه ای برای این کار وجود داره یا راه دیگه ای؟؟؟؟؟؟
میتونی از Refrenceی استفاده کنی که نامش Microsoft Office Document Imaging استفاده کنی
شاید این صفحه هم بدردت بخوره
لینک مطلب
حول همین رفرنس یه سرچ توی اینترنت بزنی کارت را می افته
ااهی به امید تو
فعلا که لینک بالا کار نمی ده ولی ازت ممنونم. کاش می شد یه مثال عملی داشته باشم...
نمیدونم delphi بلدین یا نه
ولی این کد فایل textرو به jpg تبدیل میکنه اینو برای کار با پرینتر نوشته بودم تبدیلش کردم به عکس شاید به دردتون بخوره روش کارش
procedure TForm1.Button1Click(Sender: TObject);
var
a:tbitmap;
s,g,d:integer;
f:tjpegimage;
begin
ایجاد object از bmp&jpg
f:=tjpegimage.Create;
a:=tbitmap.Create;
try
g:=memo1.Font.Size+10;فاصله خطوط در تصویر
s:=memo1.Lines.Count;یافتن تعداد خطوط فایل
a.Width:=screen.Width;طول عکس
a.Height:=s*g; عرض عکس
for d:=0 to s doبرای نوشتن خط به خط در حالت گرافیکی
begin
a.Canvas.TextOut(10,(d*g),memo1.Lines.Strings[d]);نوشنت روی عکس
end;
برای تبدیل bmp به jpg
f.Assign(a);
f.SaveToFile('c:\jpg.jpg');
finally
ازاد کردن حافظه
a.Free;
f.Free;
end;
end;
Only Delphi
دستت درد نکنه
دستتون درد نکنه. الگریتم تبدیل متن به عکس چیز خیلی قشنگیه ..من یه نمونه از اون رو به زیان VB دانلود کردم ولی متاسفانه کار من رو راه نمی اندازه چون حتما باید فایل Doc با تمام عکس ها و جدول ها و ... رو تبدیل کنم.
البته چند تا راه به نظرم رشیده ولی بلد نیستم یکی اینکه یه دیایور پرینتر تعریف کنم که از طریق اون فایل رو تبدیل کنم . یعنی همون کاری که برنامه های مبدل انجام می دن .
یا این که از درایورهای پرینتری که برنامه های مبدلی تهیه کردن تو برنامه ام استفاده کنم ولی این رو هم بلد نیستم هرچند سورس کد مربوط به استفاده از چند تا درایور رو هم نگاه کردم ولی نتونستم نمونه اش رو برای مثلا Offic Imaging درست کنم.
نمی دونم کسی تا حالا این کار رو انجام داده
salam
دوست من این برنامه واسه نوشتنش راه زیاد هست
به خود شما بستگی داره
شما میتونی برنامه رو جوری طراحی کنی که عکس ها رو هم بعد بشه به همون متن تبدیل کرد . خیلی ساده هست
کافیه برنامه رو درکش کنی
اگه میخوای پرینتش بکنی من اینو برات پیدا کردم
کد:
On Error GoTo SysInfoErr
MsgBox "Turn On Your Printer Please." & (Chr(13)) & (Chr(13)) & " Make Sure it Has Paper" & (Chr(13)), , "Printer Check"
cmdprintbutton.Enabled = False
Dim WordApplication As Word.Application
Dim Howmany As Integer
Dim Amount As Integer
Let Amount = 1
Let Book = txtnumber.Text
Set WordApplication = New Word.Application
Set WordApplication = Word.Application
With WordApplication
.Documents.Open ((App.Path) & "\" & Book & ".doc")
.Visible = False
For Amount = 1 To Howmany
.ActiveDocument.PrintOut
Next
.Application.Quit
End With
GoTo SysInfoClr
SysInfoErr:
MsgBox "Always Make Sure to Turn On Your Printer", vbOKOnly
GoTo Sysend
SysInfoClr:
MsgBox "Please Wait your Sheet is Printing", vbOKOnly
Sysend:
Unload Me
ولا من توی هیچ جا ندیدم Word رو مستقیم به عکس تبدیل کنن
دستت درد نکنه آقا پدرام. یه نگاهی به سورس زیر بنداز.....
Function DOC2PDF(sDocFile, sPDFFile)
On Error GoTo err:
Dim FSO
'if you want set the reference to > MS Word Object Library
Dim objWord 'As New Word.Application
Dim objWordDoc
Dim objWordDocs
Dim sPrevPrinter As String
Dim objDistiller
Dim sTempFile, sFolder
Set objDistiller = CreateObject("PDFDistiller.PDFDistiller")
Set FSO = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application")
Set objWordDocs = objWord.Documents
sTempFile = App.Path & "\Temp"
sDocFile = FSO.GetAbsolutePathName(sDocFile)
sFolder = FSO.GetParentFolderName(sDocFile)
If Len(sPDFFile) = 0 Then
sPDFFile = FSO.GetBaseName(sDocFile) + ".pdf"
End If
If Len(FSO.GetParentFolderName(sPDFFile)) = 0 Then
sPDFFile = sFolder + "\" + sPDFFile
End If
' Remember current active printer
sPrevPrinter = objWord.ActivePrinter
'objWord.ActivePrinter = "Acrobat PDFWriter"
objWord.ActivePrinter = "Acrobat Distiller"
' Open the Word document
Set objWordDoc = objWordDocs.Open(sDocFile)
' Print the Word document to the Acrobat Distiller - will generate a postscript (.ps) (temporary) file
objWord.ActiveDocument.PrintOut False, , , sTempFile
objWordDoc.Close 'wdDoNotSaveChanges
objWord.ActivePrinter = sPrevPrinter
objWord.Quit 'wdDoNotSaveChanges
Set objWord = Nothing
' Distill the postscript file to PDF
objDistiller.FileToPDF sTempFile, sPDFFile, "Print"
Set objDistiller = Nothing
FSO.DeleteFile (sTempFile)
Set FSO = Nothing
MsgBox "PDF File Created", vbInformation
Exit Function
err:
MsgBox err.Description, vbExclamation
End Function
-------------------------------------
در تابعی که بالا گذاشتم اگه برنامه Acrobat Distiler روی سیستم نصب باشه " بدون اینکه برنامه دیگری باز بشه" و " فقط با استفاده از ریفرنسها و کامپوننتهایی که برنامه Distiler داره" می تونید یه فایل Doc رو به PDF تبدیل کنید.
در واقع برنامه Distiler یک پرینتر به سیستم معرفی می کنه ( طراحی درایور برای پرینتر) و با استفاده از تابع بالا می تونید به توابع داخلی برنامه دست پیدا کنید و بدون اجرای اون ( نه به صورت Invisable) فایل Doc رو به PDF تبدیل کنید.
حالا من می خوام همین کار رو با برنامه های دیگه ای مثل BitWare یا OfficeImage یا Win2PDF یا دیگر بنامه های از این دست بکنم ولی بلد نیستم. یعنی این نمونه کد روی اونها جواب نداد.
برنامه in2pdfوofficeimage فکر نمیکنم فارسی رو پشتیبانی کنن ولی acrobat distilerخیلی کامله یه پرینتر مجازی میشازه و توی wordوقتی دکمه پرینتو میزنی متن رو به pdf تبدیل میکنه و فارسی رو هم پشتیبانی میکنه
یکی از پرینترهایی که معمولا موقع نصب ورد همراه اون نصب می شه به نام Microsoft Office Document ImageWriter هست که پس از پرینت داخل این برنامه مجدد می تونید فایل ایجاد شده را باز و این بار با فرمت TIF ذخیره بکنید ولی برنامه های مبدل هم در اینترنت می تونید پیدا بکنید اگه adobe acrobat professional هم داشته باشید که به انواع فرمت به راحتی می تونید تبدیل کنید حتی فرمت عکس هم داره[/color]