PDA

View Full Version : سوال: ذخیره کردن یک فرم با فرمت PDF



Ship Storm
جمعه 27 بهمن 1391, 19:36 عصر
سلام
میخواستم بدونم چطور میتونم یک فرم رو با فرمت PDF ذخیره کنم
مثلا یک فرم دارم توش 4 تا Textbox داره و یک دکمه برای ذخیره کردن همین فرم به فرمت PDF
آیا راهی هست برای این مورد ؟
ممنون

AliRezaBeytari
جمعه 27 بهمن 1391, 19:53 عصر
فکر نکنم همچین چیزی با شه!!!!!!!!!!

the king
جمعه 27 بهمن 1391, 20:22 عصر
سلام
میخواستم بدونم چطور میتونم یک فرم رو با فرمت PDF ذخیره کنم
مثلا یک فرم دارم توش 4 تا Textbox داره و یک دکمه برای ذخیره کردن همین فرم به فرمت PDF
آیا راهی هست برای این مورد ؟
ممنون

اگه کیفیت خروجی براتون مطرح نیست (تبدیل تصویر فرم به PDF کیفیت اش بالا نخواهد بود چون dpi تصویر فرم پایینه)، ابزار هایی هستند
که درجا یک فایل تصویری رو به PDF تبدیل کنند، bmp2pdf و jpg2pdf و ... گرفتن تصویر از فرم هم که ساده است و نمونه کد اش در فروم زیاده.

اما اگه کیفیت خروجی براتون مهمه، Aspose PDF و PDFsharp می توانند درجا براتون PDF بسازند (محتویات PDF رو خودتون می نویسید یا
رسم می کنید، لازم نیست که دقیقا عین فرم باشه)

ghayour
جمعه 27 بهمن 1391, 20:41 عصر
اما اگه کیفیت خروجی براتون مهمه، Aspose PDF و PDFsharp می توانند درجا براتون PDF بسازند (محتویات PDF رو خودتون می نویسید یا
رسم می کنید، لازم نیست که دقیقا عین فرم باشه)
منظورتون اینه که از نرم افزار دیگه‌ای کمک بگیریم؟ یعنی چی که خودمون محتویاتش رو رسم می‌کنیم؟

به نظر من میشه با همین دستور پرینت فرم اون رو شبیه سازی کرد اما من راهی رو که فکر میکنم اینه که Defult پرینت رو به یک pdf ساز مانند acrobat تغییر دهیم.
شما چه نظری دارید؟ راه بهتر چیه؟

Ship Storm
جمعه 27 بهمن 1391, 20:47 عصر
ملاحظه کنید من با این یک تیکه کد فرم رو بصورت یک عکس ذخیره کردم ولی میخوام ببینم میشه بصورت PDF ذخیره کرد ؟
یکم بیشتر میشه توضیح بدین چکار باید کرد و چگونه به اون دست یافت



Imports System.Drawing.Imaging
Public Class Form1
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim bmpScreenshot As Bitmap = New Bitmap(Width, Height, PixelFormat.Format32bppArgb)
' Create a graphics object from the bitmap
Dim gfxScreenshot As Graphics = Graphics.FromImage(bmpScreenshot)
' Take a screenshot of the entire Form1
gfxScreenshot.CopyFromScreen(Me.Location.X, Me.Location.Y, 0, 0, Me.Size, CopyPixelOperation.SourceCopy)
' Save the screenshot
bmpScreenshot.Save("D:\Form1.jpg", ImageFormat.Jpeg)
End Sub
End Class

the king
جمعه 27 بهمن 1391, 21:21 عصر
منظورتون اینه که از نرم افزار دیگه‌ای کمک بگیریم؟ یعنی چی که خودمون محتویاتش رو رسم می‌کنیم؟

به نظر من میشه با همین دستور پرینت فرم اون رو شبیه سازی کرد اما من راهی رو که فکر میکنم اینه که Defult پرینت رو به یک pdf ساز مانند acrobat تغییر دهیم.
شما چه نظری دارید؟ راه بهتر چیه؟

راه حل تون قطعا عملی یه، اما مساله اینجا است که قابلیت اون دکمه در برنامه رو به یک ابزار خارجی وابسته می کنید که شاید اصلا
نصب نباشه یا مورد مشابهی ازش نصب باشه که برنامه شما نمی شناسه. pdfFactory و Snagit و FinePrint و ...


ملاحظه کنید من با این یک تیکه کد فرم رو بصورت یک عکس ذخیره کردم ولی میخوام ببینم میشه بصورت PDF ذخیره کرد ؟
یکم بیشتر میشه توضیح بدین چکار باید کرد و چگونه به اون دست یافت


فایل های PDF ساختار خاص خودشون رو دارند که طبیعتا پیاده سازی کامل اش در خودش برنامه شما مشکله، جزو قابلیت های ذاتی ویندوز یا Net.
هم نیست که بدون کمک کمپوننت یا کتابخانه یا فایل جانبی یا نرم افزار مجزا انجام اش بدیم. به هر حال شما نیاز به یک بخش آماده دارید که
یا بتوانید همانطور که در Graphics چیزی رسم می کنید داخل PDF رسم کنید یا اینکه تصویری که در فایل jpg ساخته اید رو بهش تحویل بدهید
و اون ابزار PDF رو از روی JPG بسازه.

Aspose PDF که قطعا گزینه خوبی یه اما رایگان نیست، PDFsharp رایگانه.

برای تبدیل تصویر به PDF اینها رو امتحان نکرده ام اما ظاهرا کارشون همینه :

PDFdu Free Image to PDF 1.0 (http://www.softpedia.com/get/Office-tools/PDF/PDFdu-Free-Image-to-PDF.shtml)

Free JPG To PDF Converter 1.01 (http://www.softpedia.com/get/Multimedia/Graphic/Image-Convertors/Free-JPG-To-PDF-Converter.shtml)

shahryari
جمعه 27 بهمن 1391, 21:45 عصر
نرم افزار محبوب استيمول ريپورت علاوه بر گزارش گيري ، به راحتي ميتونه اين قبيل كارها را با كيفيت خوب انجام بده .....

Ship Storm
جمعه 27 بهمن 1391, 22:42 عصر
نرم افزار محبوب استيمول ريپورت علاوه بر گزارش گيري ، به راحتي ميتونه اين قبيل كارها را با كيفيت خوب انجام بده .....

این نرم افزار رو کامپوننتی نداره روی VS2010 نصب بشه ؟

shahryari
جمعه 27 بهمن 1391, 23:02 عصر
دقيقا وقتي نصب ميشه از ابزارهاش ميتوني در vs بهره ببري
توي گوگل سرچ كني ميتوني دانلودش كني و قتي نصبش كردي اطلاع بده تا در مورد خروجي گرفتن با فرمت پي دي اف برات نمونه كد بزارم

ghayour
جمعه 27 بهمن 1391, 23:08 عصر
برای چیزی که گفتم این کد رو می‌گذارم، البته همین طور که جناب the king گفتند برنامه وابسته به نرم افزار دیگری میشه.

شاید اصلا نصب نباشه یا مورد مشابهی ازش نصب باشه که برنامه شما نمی شناسه. pdfFactory و Snagit و FinePrint و ...
با این کمبو باکس این مشکل پیش نمیاد.

کافیه دستور پرینت فرم رو بعد از این کد بنویسید تا برنامه شما به چیزی که می‌خواهید تبدیل شود.
کد تغییر Default پرینتر:
به فرمتون یک ComboBox و یک Button و یک PrintDocument اضافه کنید.
سپس:

add reference: System.Management and System.Management.Instrumentation
Imports System.Management
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each printername In Printing.PrinterSettings.InstalledPrinters
ComboBox1.Items.Add(printername)
ComboBox1.SelectedItem = PrintDocument1.DefaultPageSettings.PrinterSettings .PrinterName
Next
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim query = New ManagementObjectSearcher("SELECT * FROM Win32_Printer")
Dim printers = query.[Get]()
Dim printerName As String = ComboBox1.SelectedItem 'Printer to set as default
For Each printer As ManagementObject In printers
If printer("name").ToString() = printerName.ToString() Then
printer.InvokeMethod("SetDefaultPrinter", New Object() {printerName})
End If
Next
End Sub
End Class

موفق باشید