1

で請求書ファイルを編集しています

/Mage/Sales/Model/Order/Pdf/Items/Invoice/Default.php

また、列の内容が長い場合、列が他の列にぶつかって重なり合うという問題が発生しています。例: 次の列にまたがる製品説明。幅を制限する方法/ワードラップ/コンテンツの新しい行を作成する方法を理解しようとしています。

コードは次のとおりです。

// draw Product name
$lines[0] = array(array(
    'text' => Mage::helper('core/string')->str_split($item->getName(), 60, true, true),
    'feed' => 35,
));

// draw SKU
//  $lines[0][] = array(
//    'text'  => Mage::helper('core/string')->str_split($this->getSku($item), 25),
//  'feed'  => 255
//  );

// draw Brand (Added by James)
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $this->getSku($item), array('manufacturer'));

if ($product) {
    $lines[0][] = array(
        'text'  => Mage::helper('core/string')->str_split($product->getAttributeText('manufacturer'), 15),
        'feed'  => 220
    );
}
// draw Colour (Added by James)
$product = Mage::getModel('catalog/product')->loadByAttribute('sku', $this->getSku($item), array('pos_short_colour'));

if ($product) {
    $lines[0][] = array(
        'text'  => Mage::helper('core/string')->str_split($product->getAttributeText('pos_short_colour'), 15),
        'feed'  => 320
    );
}

「フィード」は、配列が左からどれだけ離れて開始するかを設定するものであることを知っています(すべてのアイテムがcss用語で「絶対」である場合、ほとんど=マージン左に)。

しかし、メーカーが長い場合に色にぶつからないように、幅とワードラップを制限する方法がわかりません. 請求書には、各属性に余裕を持たせるだけの十分なスペースがありません。

4

2 に答える 2

1

答えはすぐそこにありました:

   $lines[0] = array(array(
        'text' => Mage::helper('core/string')->str_split($item->getName(), 60, true, true),
        'feed' => 35,
    ));

ここの 60 は、1 行に表示される文字数です。->getName(), 60, true,

于 2012-12-18T01:48:04.110 に答える
0

同じ問題がありました。新しい列を追加したら、商品説明の列が消えました。$productDescr の str_split 関数で数 (長さ) を減らすことでこれを解決しました。

于 2014-12-10T14:43:05.873 に答える