• 26-08-2022, 15:21:33
    #1
    merhabalar,

    phpoffice kütüphanesine tcpdf entegre ederek oluşturduğum word belgesini pdf e dönüştürüyorum.
    word belgesidne herhangi bir sorun olmuyor ama pdf e convert edince türkçe karakter sorunu ortaya çıkıyor.
    bu konuyla ilgili bi çözüm bulamadım internette.
    bu konuda tecrübesi / bilgisi olan var mı ?
  • 26-08-2022, 15:49:32
    #2
    ykyazilim adlı üyeden alıntı: mesajı görüntüle
    merhabalar,

    phpoffice kütüphanesine tcpdf entegre ederek oluşturduğum word belgesini pdf e dönüştürüyorum.
    word belgesidne herhangi bir sorun olmuyor ama pdf e convert edince türkçe karakter sorunu ortaya çıkıyor.
    bu konuyla ilgili bi çözüm bulamadım internette.
    bu konuda tecrübesi / bilgisi olan var mı ?
    TCPdf sınıfını kullanırken unicode parametresini dolduruyor musunuz?
  • 26-08-2022, 16:08:14
    #3
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    TCPdf sınıfını kullanırken unicode parametresini dolduruyor musunuz?
    sınıfı phpoffice içerisinde bu şekilde kullanıyorum ekstra parametre girmek için bir method varsa da ben bulamadım hocam

    $renderLibrary="TCPDF";    
    if(!\PhpOffice\PhpWord\Settings::setPdfRenderer($rendername,realpath(realpath(__DIR__).'/vendor/tecnickcom/tcpdf'))){
        echo("Provide Render Library And Path");
    }
  • 26-08-2022, 17:30:41
    #4
    Doğrudan PhpWord ile kullandığınızda unicode destekli font kullanmanız (kendi içinde yüklü gelen fontlar unicode değiller.), doğrudan kendi font dosyanızın pathini belirtmeniz gerekiyor. Örneğin basit bir örnek ile aşağıdaki gibi dejavu sans kullanırsanız Türkçe karakter sorunu yaşamazsınız:

    <?php
    
    require __DIR__.'/vendor/autoload.php';
    
    use PhpOffice\PhpWord\IOFactory;
    use PhpOffice\PhpWord\Settings;
    
    Settings::setPdfRendererName(Settings::PDF_RENDERER_TCPDF);
    Settings::setPdfRendererPath('vendor/tecnickcom/tcpdf');
    
    $phpWord = IOFactory::load('document.docx', 'Word2007');
    $phpWord->setDefaultFontName('dejavu sans');
    $phpWord->save('document.pdf', 'PDF');

    ykyazilim adlı üyeden alıntı: mesajı görüntüle
    sınıfı phpoffice içerisinde bu şekilde kullanıyorum ekstra parametre girmek için bir method varsa da ben bulamadım hocam

    $renderLibrary="TCPDF";    
    if(!\PhpOffice\PhpWord\Settings::setPdfRenderer($rendername,realpath(realpath(__DIR__).'/vendor/tecnickcom/tcpdf'))){
        echo("Provide Render Library And Path");
    }
  • 26-08-2022, 22:11:53
    #5
    fatihemre adlı üyeden alıntı: mesajı görüntüle
    Doğrudan PhpWord ile kullandığınızda unicode destekli font kullanmanız (kendi içinde yüklü gelen fontlar unicode değiller.), doğrudan kendi font dosyanızın pathini belirtmeniz gerekiyor. Örneğin basit bir örnek ile aşağıdaki gibi dejavu sans kullanırsanız Türkçe karakter sorunu yaşamazsınız:

    <?php
    
    require __DIR__.'/vendor/autoload.php';
    
    use PhpOffice\PhpWord\IOFactory;
    use PhpOffice\PhpWord\Settings;
    
    Settings::setPdfRendererName(Settings::PDF_RENDERER_TCPDF);
    Settings::setPdfRendererPath('vendor/tecnickcom/tcpdf');
    
    $phpWord = IOFactory::load('document.docx', 'Word2007');
    $phpWord->setDefaultFontName('dejavu sans');
    $phpWord->save('document.pdf', 'PDF');
    Yardımınız için teşekkür ederim hocam dediğiniz şekilde sorunsuz çıktı alabildim.