.. ขอคำแนะนำเกี่ยวกับการพิมพ์รายงาน ผ่าน PHP หน่อยครับ ..

รวมโค้ด AJAX Javascript Library jQuery Framework ต่างๆ ที่ใช้ คู่กับ php Script Ajax โค้ด Ajax Prototype UI แนะนำได้ที่นี่

Moderator: mindphp, ผู้ดูแลกระดาน

nasekas
PHP Newbie
PHP Newbie
โพสต์: 1
ลงทะเบียนเมื่อ: 27/09/2010 3:06 pm

.. ขอคำแนะนำเกี่ยวกับการพิมพ์รายงาน ผ่าน PHP หน่อยครับ ..

โพสต์โดย nasekas » 27/09/2010 3:45 pm

ระบบที่ผมใช้เป็น PHP + mySQL

เท่าที่ค้นหาข้อมูลมาจะมี

1. ผ่าน PDF (ปัญหาของผมคือ ต้องกดหลายขั้นตอนกว่าจะ print ได้ )

2. ผ่าน CSS โดยการ ใช้ สคริป window.print()


ไม่ทราบว่าทุกท่าน ใช้วิธีใหนในการ พิมพ์รายงาน บ้างครับ

ปล. .. ขอถามเพิ่มเติมหน่อยนะครับ ..

ไม่ทราบว่า เราจะ set อย่างไร ไม่ให้เวลาปริ้นหน้าเวปออกมา แล้วไม่มีข้อความพวก ชื่อ filename,เวลา, หน้าที่เท่าไหร่, title (ต้องการจะ print ใบเสร็จรับเงินอะครับ)
คุณไม่มีสิทธิ์ดูไฟล์ที่แนบมาในกระทู้

ภาพประจำตัวสมาชิก
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
โพสต์: 16490
ลงทะเบียนเมื่อ: 22/09/2008 6:18 pm
ติดต่อ:

Re: .. ขอคำแนะนำเกี่ยวกับการพิมพ์รายงาน ผ่าน PHP หน่อยครับ ..

โพสต์โดย mindphp » 28/09/2010 12:06 am

ทำออกมาเป็น pdf เลยครับ
ลองดู TCPDF สามารถกำหนดค่าต่างๆ พวกนั้นได้
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: viewforum.php?f=29
รับอบรม และพัฒนาระบบ: viewtopic.php?f=6&t=2042

deawx

Re: .. ขอคำแนะนำเกี่ยวกับการพิมพ์รายงาน ผ่าน PHP หน่อยครับ ..

โพสต์โดย deawx » 24/10/2010 8:26 am

ผมเขียนให้ผ่านหน้าเว็บเลยครับ
แต่ถ้าข้อมูลที่มีความซับซ้อนและต้องการรูปแบบที่ชัดเจน
ก็ใช้ระบบผ่าน PDF หรือไม่ก็ export เป็นไฟล์ format อื่น ๆ เอาครับ

มันแล้วแต่งานไปครับ
อย่างตัวอย่างที่ผมใช้ คือกำหนดพื้นที่การพิมพ์ในหน้าเว็บเพจ (พิมพ์เฉพาะที่กำหนด) โดยใช้ jquery ผมใช้แบบนี้ครับ

โค้ด: เลือกทั้งหมด

(function($) {
    var opt;

    $.fn.cyberprint = function (options) {
        opt = $.extend({}, $.fn.cyberprint.defaults, options);
        var $element = (this instanceof jQuery) ? this : $(this);
        if (opt.operaSupport && $.browser.opera)
        {
            var tab = window.open("","cyberprint-preview");
            tab.document.open();

            var doc = tab.document;
        }
        else
        {
            var $iframe = $("<iframe  />");
       
            if (!opt.debug) { $iframe.css({ position: "absolute", width: "0px", height: "0px", left: "-600px", top: "-600px" }); }

            $iframe.appendTo("body");
            var doc = $iframe[0].contentWindow.document;
        }
       
        if (opt.importCSS)
        {
            if ($("link[media=print]").length > 0)
            {
                $("link[media=print]").each( function() {
                    doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' media='print' />");
                });
            }
            else
            {
                $("link").each( function() {
                    doc.write("<link type='text/css' rel='stylesheet' href='" + $(this).attr("href") + "' />");
                });
            }
        }
       
        if (opt.printContainer) { doc.write($element.outer()); }
        else { $element.each( function() { doc.write($(this).html()); }); }
       
        doc.close();
       
        (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).focus();
        setTimeout( function() { (opt.operaSupport && $.browser.opera ? tab : $iframe[0].contentWindow).print(); if (tab) { tab.close(); } }, 1000);
    }
   
    $.fn.cyberprint.defaults = {
      debug: false,
      importCSS: true,
      printContainer: true,
      operaSupport: true
   };

    jQuery.fn.outer = function() {
      return $($('<div></div>').html(this.clone())).html();
    }
})(jQuery);


เรียกใช้

โค้ด: เลือกทั้งหมด

 $("#btn_print").click( function() {
  $('#Printmonth').cyberprint();
  return false;
  });


กำหนดใน html

โค้ด: เลือกทั้งหมด

<div id="Printmonth">
ข้อมูล ข้อมูล
....
</div>



http://www.cyberthai.net/itservice2
user = user
pass= user

ลองทดสอบดูครับผม


ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 2 และ บุคคลทั่วไป 0 ท่าน