سؤال

ولقد أنشأ صفحة على شبكة الإنترنت التي تمكنك من إدخال بعض المعلومات ومن ثم يرسم صورة في عنصر قماش بناء على تلك المعلومات. لقد كان العمل الى حد كبير الطريقة التي أريد باستثناء الطباعة.

هل هناك طريقة لطباعة العنصر قماش أو إنشاء إطار جديد لجذب، والطريقة الوحيدة للقيام بذلك؟

تحديث:

وكان الجواب في غاية البساطة. كنت أفكر في حل الكثير أكثر تعقيدا.

وأتمنى أن اختيار أكثر من 1 إجابة. لم أكن قادرا على الحصول على قماش لطباعة عندما اعتدت * لتعطيل عرض. وكان أبسط الحلول لتحويل قبالة النموذج الذي كنت تستخدم لإدخال، وذلك باستخدام النموذج {عرض: لا شيء؛} في CSS داخل طباعةmedia {}. شكرا للاستجابة السريعة.



    @media print {
           form {
         display:none;
       }
    }

هل كانت مفيدة؟

المحلول

هل يمكن أن تجرب شيئا من هذا القبيل:

@media print {
  * {
    display:none;
  }

  #SOME-CANVAS-ID {
    display:block;
  }
}

ولست متأكدا إذا كان قماش هو كتلة افتراضيا، ولكن هل يمكن أن تجرب شيئا على غرار ذلك، ومعرفة ما اذا كان يعمل. والفكرة هي أنه سوف إخفاء كل شيء (*) لوسائل الإعلام المطبوعة، باستثناء بعض العناصر تعسفي آخر طالما الأسبقية القاعدة هي أعلى (وهذا هو السبب كنت محدد ID).

وتحرير: إذا CSS3 (تحديدا نفي الزائفة من الدرجة ) كان المزيد من الدعم، القاعدة يمكن أن تكون بسيطة مثل هذا:

*:not(canvas) {
  display:none;
}

ومع ذلك، قد يؤدي هذا و العبارات التي تكون مخفية، يختبئ بشكل فعال قماش الخاص بك أيضا ...

نصائح أخرى

وأنا لست متأكدا 100٪ من الدعم، ولكن يمكنك استخدام CSS ووضع السمة في العلامة <link> لmedia="print". في هذا الملف CSS، مجرد إخفاء العناصر التي لا تريد أن تظهر أثناء الطباعة: display:none;

ويمكنك محاولة إنشاء قماش فقط للطباعة:

this.Print = function () {
    var printCanvas = $('#printCanvas');
    printCanvas.attr("width", mainCanvas.width);
    printCanvas.attr("height", mainCanvas.height);
    var printCanvasContext = printCanvas.get(0).getContext('2d');
    window.print();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top