C3: فشل إنشاء ملف PDF بواسطة wkhtmltopdf مع C3 0.3.0

تم إنشاؤها على ١٠ سبتمبر ٢٠١٤  ·  17تعليقات  ·  مصدر: c3js/c3

عند استخدام wkhtmltopdf لإنشاء مستندات PDF من html مع مخططات c3 ، فإن أحدث إصدار من c3 (0.3.0) يجعل wkhtmltopdf يعلن الخطأ "تحذير: غير محدد: 0 TypeError: 'undefined' ليست وظيفة". يعرض ملف PDF الناتج مساحة فارغة بدلاً من الرسم البياني.

تم استخدام إصدار أقدم من c3 لإنشاء المخطط بسهولة. لقد قمت بإعادة إنتاج هذا باستخدام أنواع المخططات الدائرية والشريطية.

تتوفر حزمة html و css و javascript كاملة مع wkhtmltopdf على
http://burgan.whitevector.com/images/bug_report.zip

الإخراج الكامل لـ wkhtmltopdf:
shark @ virshark : ~ / bug_report $ sh create_pdf.sh
تحميل الصفحات (1/6)
تحذير: غير محدد: 0 خطأ في النوع: "غير محدد" ليس دالة
عد الصفحات (2/6)
حل الروابط (4/6)
تحميل الرؤوس والتذييلات (5/6)
طباعة الصفحات (6/6)
فعله

التعليق الأكثر فائدة

أظن أن هذا يرجع إلى أن wkhtmltopdf يستخدم QtWebKit والذي به مشاكل مع Function.prototype.bind ، وهي طريقة مستخدمة في جميع أنحاء الإصدار الجديد من c3. اضطررت للتعامل مع قضية مماثلة بنفسي عندما كتبت مصدرا phantomjs . الحل هو إضافة هذا الحشو الصغير:

Function.prototype.bind = Function.prototype.bind || function (thisp) {
  var fn = this;
  return function () {
    return fn.apply(thisp, arguments);
  };
};

لست على دراية بـ wkhtmltopdf لكنك ستحتاج إلى تشغيل هذا الرمز في سياق الصفحة التي يتم عرضها (فقط قم بتضمينها في الصفحة قبل ملفات c3 js وستعمل)

ال 17 كومينتر

أظن أن هذا يرجع إلى أن wkhtmltopdf يستخدم QtWebKit والذي به مشاكل مع Function.prototype.bind ، وهي طريقة مستخدمة في جميع أنحاء الإصدار الجديد من c3. اضطررت للتعامل مع قضية مماثلة بنفسي عندما كتبت مصدرا phantomjs . الحل هو إضافة هذا الحشو الصغير:

Function.prototype.bind = Function.prototype.bind || function (thisp) {
  var fn = this;
  return function () {
    return fn.apply(thisp, arguments);
  };
};

لست على دراية بـ wkhtmltopdf لكنك ستحتاج إلى تشغيل هذا الرمز في سياق الصفحة التي يتم عرضها (فقط قم بتضمينها في الصفحة قبل ملفات c3 js وستعمل)

شكرا لك! يؤدي إدخال هذه الأسطر الستة قبل برامج جافا سكريبت الأخرى إلى حل المشكلة.

شكرا! يبدو أن هذه المشكلة قد تم حلها ، لذا يرجى إعلامي.

تضمين التغريدة
dwight-schrute-thank-you-cry-on-the-office

yuvii أنت رائع!
slothsome

واجهت نفس المشكلة ولكن مع vega / wkhtmltopdf . الحل من قبل yuvii يعمل مثل السحر. شكرا جزيلا!

yuvii أنت ملك!

yuvii شكرا !!!!!

بالنسبة لموظفي Google ، حل yuvii مشكلة جيلي باستخدام التقويم الكامل. قضيت ساعات في البحث عن حل.
شكرا لك.

رهيبة yuvii . لقد واجهت نفس المشكلة عندما تغيرت واجهة برمجة تطبيقات خرائط Google

شكرًا جزيلاً ، لقد أدى هذا إلى حل مشكلة django pdfkit تمامًا!

شكرا لك @ yuvii . قضيت ساعات في البحث عن حل:
الرسم على قماش باستخدام Fabric.js> Html> wkhtmltopdf> ملف .pdf
كان Html في المستعرض صحيحًا ، لكن ملف .pdf الناتج يحتوي على لوحة فارغة.

يبدو أن fabric.js لديه نفس المشكلة

أظن أن هذا يرجع إلى أن wkhtmltopdf يستخدم QtWebKit والذي به مشاكل مع Function.prototype.bind ، وهي طريقة مستخدمة في جميع أنحاء الإصدار الجديد من c3. اضطررت للتعامل مع قضية مماثلة بنفسي عندما كتبت مصدرا phantomjs . الحل هو إضافة هذا الحشو الصغير:

Function.prototype.bind = Function.prototype.bind || function (thisp) {
  var fn = this;
  return function () {
    return fn.apply(thisp, arguments);
  };
};

لست على دراية بـ wkhtmltopdf لكنك ستحتاج إلى تشغيل هذا الرمز في سياق الصفحة التي يتم عرضها (فقط قم بتضمينها في الصفحة قبل ملفات c3 js وستعمل)

شكرا جزيلا ، أنقذ يومي. عملت بالنسبة لي مع C3js. من المهم تعيين عرض حاوية المخطط.

هذه التعليقات مدهشة. لم أعد أكتب بعد الآن ، لقد تركت هذا العالم ، لكن بين الحين والآخر أزور هذه الصفحة ، وأشاهد في رهبة الحل الذي وجدته لمشكلة متخصصة قد ساعد الكثير من الناس لمدة 5 سنوات وما زالت مستمرة. هذا جنون.

أظن أن هذا يرجع إلى أن wkhtmltopdf يستخدم QtWebKit والذي به مشاكل مع Function.prototype.bind ، وهي طريقة مستخدمة في جميع أنحاء الإصدار الجديد من c3. اضطررت للتعامل مع قضية مماثلة بنفسي عندما كتبت مصدرا phantomjs . الحل هو إضافة هذا الحشو الصغير:

Function.prototype.bind = Function.prototype.bind || function (thisp) {
  var fn = this;
  return function () {
    return fn.apply(thisp, arguments);
  };
};

لست على دراية بـ wkhtmltopdf لكنك ستحتاج إلى تشغيل هذا الرمز في سياق الصفحة التي يتم عرضها (فقط قم بتضمينها في الصفحة قبل ملفات c3 js وستعمل)

هولي مولي ، سيكون لك إلى الأبد مكانة خاصة في قلبي. كان الرسم البياني Highchart يعمل بشكل صحيح على متصفح الويب ولكن لم يتم تحويله بشكل صحيح إلى PDF باستخدام Wkhtmltopdf. إذا كان شخص ما يواجه نفس المشكلة ، فما عليك سوى إضافة إنشاء تلك الوظيفة من قبل لاستدعاء النص البرمجي للمخطط العالي. وأخيرا وجدت حلا بعد 4 ساعات. أيضًا لتتمكن من تصحيح مشكلتك مع Wkhtmltopdf و Highchart ، لا تنس إضافة هذه الوسيطة "wkhtmltopdf.exe --javascript-delay 10000 - no-stop-slow-scripts --enable-javascript --debug-javascript"

أظن أن هذا يرجع إلى أن wkhtmltopdf يستخدم QtWebKit والذي به مشاكل مع Function.prototype.bind ، وهي طريقة مستخدمة في جميع أنحاء الإصدار الجديد من c3. اضطررت للتعامل مع قضية مماثلة بنفسي عندما كتبت مصدرا phantomjs . الحل هو إضافة هذا الحشو الصغير:

Function.prototype.bind = Function.prototype.bind || function (thisp) {
  var fn = this;
  return function () {
    return fn.apply(thisp, arguments);
  };
};

لست على دراية بـ wkhtmltopdf لكنك ستحتاج إلى تشغيل هذا الرمز في سياق الصفحة التي يتم عرضها (فقط قم بتضمينها في الصفحة قبل ملفات c3 js وستعمل)

شكرًا جزيلاً ، لقد قمت للتو بتوصيل ما يزيد عن 6 أسطر وهي تعمل مع مخطط الارتفاع ، وقد تم تصحيحها لمدة 3 - 4 ساعات تقريبًا.

أظن أن هذا يرجع إلى أن wkhtmltopdf يستخدم QtWebKit والذي به مشاكل مع Function.prototype.bind ، وهي طريقة مستخدمة في جميع أنحاء الإصدار الجديد من c3. اضطررت للتعامل مع قضية مماثلة بنفسي عندما كتبت مصدرا phantomjs . الحل هو إضافة هذا الحشو الصغير:

Function.prototype.bind = Function.prototype.bind || function (thisp) {
  var fn = this;
  return function () {
    return fn.apply(thisp, arguments);
  };
};

لست على دراية بـ wkhtmltopdf لكنك ستحتاج إلى تشغيل هذا الرمز في سياق الصفحة التي يتم عرضها (فقط قم بتضمينها في الصفحة قبل ملفات c3 js وستعمل)

أنقذت يومي. كان يكافح طوال أيام معًا: +1:

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات