2016-10-24 2 views
1

В настоящее время я использую epson ePOS SDK для Android. Мне нужно распечатать квитанцию, что имя меню выравнивается влево, а ее цена выравнивается вправо в той же строке, но она не работает должным образом, мое временное решение добавляет некоторую линию подачи, чтобы ее цена выравнивалась вправо, возможно ли выравнивание текста влево и вправо в одной строке? (Приложения ниже и, пожалуйста, игнорировать символы знак вопроса)Epson epos sdk получение выравнивание вопрос

   mPrinter.addTextAlign(Printer.ALIGN_LEFT); 
       mPrinter.addFeedLine(0); 
       textData.append(menuName); 
       mPrinter.addText(textData.toString()); 
       textData.delete(0, textData.length()); 
       mPrinter.addFeedLine(0); 

       //print price 
       mPrinter.addTextAlign(Printer.ALIGN_RIGHT); 
       textData.append(price + "Y" + "\n"); 
       mPrinter.addText(textData.toString()); 
       textData.delete(0, textData.length()); 
       mPrinter.addFeedLine(0); 

enter image description here

ответ

1

80 мм, как 42 столбцов на линии ... которые могут быть легко проложенный:

mPrinter.addText(padLine(menuName, price + "¥", 42, " ") + "\n"); 

искомая String манипуляции методы похожи друг на друга:

/** utility: pads two strings to columns per line */ 
protected String padLine(@Nullable String partOne, @Nullable String partTwo, int columnsPerLine, String str){ 
    if(partOne == null) {partOne = "";} 
    if(partTwo == null) {partTwo = "";} 
    if(str == null) {str = " ";} 
    String concat; 
    if((partOne.length() + partTwo.length()) > columnsPerLine) { 
     concat = partOne + str + partTwo; 
    } else { 
     int padding = columnsPerLine - (partOne.length() + partTwo.length()); 
     concat = partOne + repeat(str, padding) + partTwo; 
    } 
    return concat; 
} 

/** utility: string repeat */ 
protected String repeat(String str, int i){ 
    return new String(new char[i]).replace("\0", str); 
} 

нужно отформатировать цену до валюты, прежде чем заполнять ее.

+1

Спасибо за ваш ответ, и он работает безупречно! –