nexpay

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

شروع موضوع توسط mehdi25 ‏25 فوریه 2006 در انجمن asp , ASP.NET

  1. mehdi25

    mehdi25 کاربر تازه وارد

    تاریخ عضویت:
    ‏28 اکتبر 2004
    نوشته ها:
    1,317
    تشکر شده:
    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("[email protected]", "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
    
    
     
  2. kouroshm

    kouroshm کاربر تازه وارد

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

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

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

    اینم اینکشه :


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

    mehdi25 کاربر تازه وارد

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

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

    kouroshm کاربر تازه وارد

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

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

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

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

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole

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

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

    mehdi25 کاربر تازه وارد

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

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

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    بابا تو هم بین همه پیغمبر ها جرجیس روانتخاب کردی ها آخه دیگه مشکلی نبود فونتش رو مطرح کردی ؟؟ من تاجایی که میدونم دان نت 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

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

    mehdi25 کاربر تازه وارد

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

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

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    خوب کد asp ش رو بذار اینجا دیگه :D
     
  10. mehdi25

    mehdi25 کاربر تازه وارد

    تاریخ عضویت:
    ‏28 اکتبر 2004
    نوشته ها:
    1,317
    تشکر شده:
    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 %>
    موفق باشید.
     
zarpopخرید بک لینک عسل طبیعی و گرده گل ایرانیfootbal