سؤال

كنت أتساءل إذا كنت يمكن أن بطريقة ما تحويل رأس عمود النص شكل الخلية في actial عرض حجم بكسل.أنا أحاول إنشاء PDF من قاعدة البيانات و أريد أن تلقائيا ضبط عرض الأعمدة.كما سيتم استخدامه لكثير من جداول العرض يجب أن تختلف لذا يجب أن تكون قادرا على رؤية ذلك مثل:"رأس هذا العمود يسمى كومبانييد لذلك ينبغي أن يكون عرض 40".هل أستطيع تحقيق شيء مثل هذا ؟ هل يمكنني تحويل النص الشخصيات طول الفعلية العرض ؟

شكرا

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

المحلول

وFPDF يحدث لديك GetStringWidth () طريقة أن يتنبأ العرض من سلسلة.

نصائح أخرى

وتحتاج إلى أن يكون وسيلة للحساب قياسات الخط التي سيتم استخدامها في PDF - التي مكتبة الجيل PDF الذي تستخدمه

على الرغم من أنني كنت نوصي بشدة باستخدام الخط الذي الحروف كلها متساوية العرض (Courier New, ربما) ثم ضرب طول السلسلة قبل العرض يمكنك تحديد حرف واحد ، يمكن أن استخدام قليلا من تعليمات برمجية من جانب الخادم أن تفعل خدعة.سوف أتحدث في PHP من هنا.:)

Assming لديك حق الوصول إلى مكتبة GD, يمكنك استخدام imagettfbbox() الدالة بإرجاع إحداثيات المربع المحيط من سلسلة ؛ التالية مثال:

<?php
$size = 15;
$angle = 0;
$path = 'name_of_font.ttf';
$bounding = imagettfbbox($size, $angle, $path, "This is some text.");

// $bounding is now an array of values that contain
// information regarding the invisible "box" around
// the text; the only element you're really interested
// in, though, the one that will tell you the width of
// the text, is $bounding[2]
?>

لذا كلما كنت في حاجة للاستدلال عرض سلسلة ببساطة استدعاء هذه الدالة و استخدام عنصر في المؤشر 2 من الناتج مجموعة من الحصول على المعلومات التي تحتاج إليها.آمل أن أكون قد ساعدت.

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

إذا أنا لست سوء الفهم، وهذا يعتمد كليا على الخط الذي تستخدمه، وليس لديها أي علاقة مع البيانات المخزنة في الخلية. هل يمكن أن تأتي بالتأكيد مع وسيلة لتقريب ذلك، ولكن ذلك يعتمد بشكل كبير على ملامح الخط الذي تستخدمه. على سبيل المثال، هل أحادي المسافة على الخط؟ إن لم يكن، عمود المسمى "LLLLLL" ستكون أرق بكثير من واحد اسمه "MMMMMM"، على الرغم من انهم نفس عدد الأحرف.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top