برگزیده های پرشین تولز

PDFطریقه ساخت یه فایل پی دی اف

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
من این سوالو اینجا یه بار پرسیدم ولی هنوز به جواب نرسیدم

من یه صفحه دارم که اطلاعاتی رو از Database بر میداره و تو یه جدول نشون میده ( این اطلاعات متغیرند ) .
چطوری میشه یه صفحه تولید کرد و به صورت خودکار به PDF تبدیلش کنم ... ؟

تواون صفحه که قرار برای کاربر PDF بشه یه جدول قرار داره که اطلاعات درون جدول از Database استخراج میشه .

بچه ها لطف کردن و یه سری لینک برام گداشتن ولی به نتیجه نرسیدم . یا از ActiveXی استفاده میکنه که مجانی نیست و تبلیغات خودشو بزرگ وسط صفحه PDF میزنه ... :( یا یه متن ساده رو PDF میکنه .

به سایت ADOBI هم سر زدم ولی :( چیزی دستگیرم نشد . زیاد از این برنامه ها داشت من از اونا چیزی نفهمیدم
کسی برنامه ای در این مورد ندیده ...؟

اینم یه نمونه از برنامه هایی که گرفتم . البته ASP.NET هست
کد:
Private Sub Page_Load( ByVal sender As System.Object, 
                       ByVal e As System.EventArgs) Handles Button1.Click

Dim PDF ' PDF object

Dim Size As Long

Dim PDFImage As System.Array

' create pdf library object

PDF = CreateObject("PDFCreatorPilot2.piPDFDocument")

' initialize PDF Engine

PDF.StartEngine("demo@demo", "demo")

' set GenerateInMemoryFile generation flag to TRUE so keep PDF ' only in the memory

PDF.GenerateInMemoryFile = True

' start document generation

PDF.BeginDoc()

' draw "HELLO, PDF" message on the current PDF page

PDF.PDFPAGE_SetActiveFont("Verdana", True, False , False , False , 14, 0)

PDF.PDFPAGE_TextOut(10, 20, 0, "HELLO, PDF!")

' finalize document generation

PDF.EndDoc() ' clear the output stream

' get size of generated in-memory pdf file

Size = PDF.MemoryFileSize

' create new buffer with size equal to generated pdf file

Dim PDFBuffer( CInt (Size)) As Byte

' get in-memory pdf file as byte stream

PDFImage = PDF.BinaryImage

' copy byte stream into buffer

Array.Copy(PDFImage, PDFBuffer, Size)

' clear http output

Response.Clear()

' set the content type to PDF

Response.ContentType = "application/pdf"

' add content type header

Response.AddHeader("Content-Type", "application/pdf")

' set the content disposition

Response.AddHeader("Content-Disposition", "inline;filename=form.pdf")

' write the buffer with pdf file to the output

Response.BinaryWrite(PDFBuffer)

Response.End()

' disconnect from library

PDF = Nothing

End Sub
 

kouroshm

کاربر تازه وارد
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
149
لایک‌ها
0
تنها راحش استفاده از کامپوننت معروف پی-دی-اف هستش.

برای ساختش به Adobe® Document Server محصول شرکت Adobe احتیاج داری که اکثر هاست ها ندارن و یک پولی برای خرید نرم افزار و یک پولم باید بدی هاستت که واست ست آپش کنه.

پیشنهاد میکنم فکرشو نکنی

اینم اینکشه :


http://www.adobe.com/products/server/documentserver/main.html
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
خوب اینا رو که دیدم

یعنی مجانی جایی پیدا نمیشه
میشه هــــــــا . یعنی این همه سایتها که دارن PDF میدن همشون خریدن . فکر نمی کنم.
پس من برای پرینت از اطلاعات دیتا بیس چیکار باید بکنم
 

kouroshm

کاربر تازه وارد
تاریخ عضویت
23 سپتامبر 2005
نوشته‌ها
149
لایک‌ها
0
من نگفتم مجانی نمیتونی گیر بیاری ولی باید بدی هاستت رو سرورش واست ست آپ کنه اونو چیکار میکنی ؟ اون که مجانی نمیشه.

تازه هیچ هاستی حاضر نیست نرم افزار مجانی و کرک شده رو رو سرورش ست آپ کنه.

اون همه سایت که میبینی یا پول دادن خریدن یا جزء امکانات مجانی هاستشون بوده.

چرا واسه پرینت رکورد هات از یک صفحه پرینت ورژن (مثل یاهو و خیلی سایت های دیگه) استفاده نمیکنی که نتایج رو در قالب ستون نشون بدن و بشه ازش پرینت گرفت ؟
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از mehdi25 :
خوب اینا رو که دیدم

یعنی مجانی جایی پیدا نمیشه
میشه هــــــــا . یعنی این همه سایتها که دارن PDF میدن همشون خریدن . فکر نمی کنم.
پس من برای پرینت از اطلاعات دیتا بیس چیکار باید بکنم


ببینم با یک درجه تخفیف این فایل ها رو Microsoft Office Word شون کنی و هرجا که لازم باشه عکس و نمودار رو به صورت داینامیک ایجاد کنی و بهش اضافه کنی کارت راه نمیفته ؟؟؟؟ و یا با دو درجه تخفیف به جای PDF بیای و JPG شون کنی که دیگه خیلی راحت تر هم هست !

روش فک کن پیشنهاد خوبیه :))
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
Microsoft Word خویه ولی چطوری ؟؟؟

من نمیدونم چطور ی Online یه فایل DOC درست کنم که تازه فونتش هم مشکل دیگه ای داره ...
اگه میتونی راهنماییم کن
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از mehdi25 :
Microsoft Word خویه ولی چطوری ؟؟؟

من نمیدونم چطور ی Online یه فایل DOC درست کنم که تازه فونتش هم مشکل دیگه ای داره ...
اگه میتونی راهنماییم کن

بابا تو هم بین همه پیغمبر ها جرجیس روانتخاب کردی ها آخه دیگه مشکلی نبود فونتش رو مطرح کردی ؟؟ من تاجایی که میدونم دان نت 2 برای کار با ورد یه امکاناتی داره ولی هنوز وقت نکردم برم دنبالش ، سعی میکنم یه گریزی بزنم ببینم چیزی پیدا میکنم یا نه (خودتم بگرد البته )
اینو هم پیدا کردم برای دات نت 1 :
کد:
This is an example on Office 2003. You must have the Office 2003 PIA component installed.

1) Create a winform project
2) Add COM references
    a) Microsoft Office 11.0 Object Library
    b) Microsoft Word 11.0 Object Library
3) Add a button at the Form1
4) Coding on Form1
    a) Use the following libraries
        using System.Reflection;
        using Word = Microsoft.Office.Interop.Word;
        using Microsoft.Office.Core;
    b) At the button click event

        private void button1_Click(object sender, System.EventArgs e)
        {
           Word.ApplicationClass oWord = new Word.ApplicationClass();
           oWord.Visible = true;
           Word.Documents oDocs = oWord.Documents;
           object oFile = "c:\\doc1.doc";

           object oMissing = System.Reflection.Missing.Value;
           Word._Document oDoc = oDocs.Add(ref oMissing, ref oMissing, ref oMissing, ref oMissing);

           oWord.ActiveDocument.ReadOnlyRecommended = false;
           oWord.ActiveDocument.Password = "test123";
           oWord.ActiveDocument.WritePassword = "";
           ....

          oDoc.SaveAs(ref oFile, 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);

          // Quit Word and clean up.
          oDoc.Close(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (oDoc);
          oDoc = null;
          System.Runtime.InteropServices.Marshal.ReleaseComObject (oDocs);
          oDocs = null;
          oWord.Quit(ref oMissing, ref oMissing, ref oMissing);
          System.Runtime.InteropServices.Marshal.ReleaseComObject (oWord);
          oWord = null;
        }

Run the project and click the button, a word doc will be generated at c:\doc1.doc with a read only password "test123".

Cheers.

این شانسی دیدم ! : همونه که دنبالش بودی ببین چطوره :

http://www.gohtm.com/
Start Creating PDF >>
You can convert these following
formats to PDF for Free:
Document
formats Image
formats
DOC PPT XLS JPG GIF TIFF
RTF PPS HTML BMP PNG EMF
TXT PUB WMF

البته هیچ کدومو تست نکردم !
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
آقا H_R جان ممنون .
مشکل حل شد .
از PDF که کلا منصرف شدم ولی طبق گفته های H_R به MS Word متوصل شدم . البته ASP شو گیر آوردم .

به بجه های دیگه که این مشکلو دران منم توصیه میکنم که از ورد استفاده کنن . اصلاً فکر PDF رو از سرتون بیرون کنید .
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از mehdi25 :
آقا H_R جان ممنون .
مشکل حل شد .
از PDF که کلا منصرف شدم ولی طبق گفته های H_R به MS Word متوصل شدم . البته ASP شو گیر آوردم .

به بجه های دیگه که این مشکلو دران منم توصیه میکنم که از ورد استفاده کنن . اصلاً فکر PDF رو از سرتون بیرون کنید .

خوب کد asp ش رو بذار اینجا دیگه :D
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
برای این که بتونی یه فایل رو به صورت Word به کاربر بدی این کار ها رو باید انجام بدی :

یه صفحه ای داری که اطلاعات رو از Database استخراج میکنه و به کاربر نشون میده . حالا می خوای عین همون صفحه رو برای کاربر به صورت Word ارسال کنی .
یه لینک باید به خود صفحه بدی که در اون لینک xport=word قرار میدی . xport یه QueryString هست .
مثلا ً : یه صفحه داریم به نام Monitor.asp درون اون هم یه لینک میزایم به این ترتیب :
کد:
<a href="Monitor.asp?xport=word">Print</a>

اینو هم بزار اول صفحه :
کد:
<%
sExport = Request.QueryString("xport")
If sExport = "word" Then
	Response.ContentType = "application/vnd.ms-word"
	Response.AddHeader "Content-Disposition:", "attachment; filename=MONITOR.doc"
End If
%>
خوب حالا از تمام صفحه یه فایل Word درست میکنه و به شما میده . ولی این بدردت نمی خوره .
چون اون دقیقاً همون صفحه ای که به صورت Web داری و الان در IE باز شده رو بصورت پرینت بهت میده .یه سری چیزایه زیادی هست که نمی خوای اونارو کاربر پرینت کنه ، یا یه چیزایی می خوای به صفحه پرینت اضافه کنی.
برای این کار باید تمامی قسمت هایی که می خوای در فایل پرینت قرار داده بشه رو باید با یه شرط ساده بهش بگی مثل این :
کد:
<% If sExport <> "" Then %>Brand
<% Else %>

و همین طور چیزایی رو که می خوای وقتی که فایل به صورت Web اجرا میشه و کاربر میبینه رو تو صفحه داشته باشی باید این کار رو انجام بدی :
کد:
<% If sExport <> "word" Then %>
<!--#include file="header.asp"-->
<script type="text/javascript" src="Monitor.js"></script>
<script type="text/javascript">
<!--
var rowcolor = '#FFFFFF'; 
var rowaltcolor = '#F5F5F5'; 
var rowmovercolor = '#FFCCFF'; 
var rowselectedcolor = '#CCFFFF'; 
var roweditcolor = '#FFFF99'; 
//-->
</script>

<% End If %>

موفق باشید.
 
بالا