• R/O
  • SSH
  • HTTPS

aoiro: Commit


Commit MetaInfo

Révision61 (tree)
l'heure2020-10-05 14:23:03
Auteurhirukawa_ryo

Message de Log

* aoiro 0.7.2
仕訳帳・総勘定元帳・損益計算書・貸借対照表・社員資本等変動計算書のPDF出力に使用するフォントローダーを外部指定できるようにしました。
PDF出力するwriteToメソッドに引数OutputStreamを指定できるようにしました。

Change Summary

Modification

--- aoiro/trunk/src/main/java/net/osdn/aoiro/cui/Main.java (revision 60)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/cui/Main.java (revision 61)
@@ -32,8 +32,6 @@
3232
3333 public class Main {
3434
35- public static FontLoader fontLoader;
36-
3735 public static void main(String[] args) {
3836
3937 System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.NoOpLog");
@@ -156,16 +154,17 @@
156154 Set<String> fontFileNames = new HashSet<String>();
157155 fontFileNames.addAll(FontLoader.FILENAMES_YUGOTHIC);
158156 fontFileNames.addAll(FontLoader.FILENAMES_YUMINCHO);
159- fontLoader = new FontLoader(FontLoader.getDefaultFontDir(), fontFileNames, null);
157+ FontLoader fontLoader = new FontLoader(FontLoader.getDefaultFontDir(), fontFileNames, null);
160158
161-
162159 // 仕訳帳をファイルに出力します。
163160 // この処理は総勘定元帳(GeneralLedger)を作成してから呼び出す必要があります。GeneralLedgerによって仕訳帳の「元丁」が設定されるからです。
161+ generalJournal.setFontLoader(fontLoader);
164162 generalJournal.writeTo(outputDir.resolve("仕訳帳.pdf"));
165163 System.out.println(" 仕訳帳.pdf を出力しました。");
166164
167165 // 総勘定元帳をファイルに出力します。
168166 // この処理は仕訳帳(GeneralJournal)を作成してから呼び出す必要があります。GeneralJournalによって総勘定元帳の「仕丁」が設定されるからです。
167+ generalLedger.setFontLoader(fontLoader);
169168 generalLedger.writeTo(outputDir.resolve("総勘定元帳.pdf"));
170169 System.out.println(" 総勘定元帳.pdf を出力しました。");
171170
@@ -173,6 +172,7 @@
173172 //損益計算書
174173 ProfitAndLossLayout plLayout = accountTitlesLoader.getProfitAndLossLayout();
175174 ProfitAndLoss pl = new ProfitAndLoss(plLayout, journalEntries, isSoloProprietorship);
175+ pl.setFontLoader(fontLoader);
176176 pl.writeTo(outputDir.resolve("損益計算書.pdf"));
177177 System.out.println(" 損益計算書.pdf を出力しました。");
178178
@@ -179,6 +179,7 @@
179179 //貸借対照表
180180 BalanceSheetLayout bsLayout = accountTitlesLoader.getBalanceSheetLayout();
181181 BalanceSheet bs = new BalanceSheet(bsLayout, journalEntries, isSoloProprietorship);
182+ bs.setFontLoader(fontLoader);
182183 bs.writeTo(outputDir.resolve("貸借対照表.pdf"));
183184 System.out.println(" 貸借対照表.pdf を出力しました。");
184185
@@ -186,6 +187,7 @@
186187 if (!isSoloProprietorship) {
187188 StatementOfChangesInEquityLayout sceLayout = accountTitlesLoader.getStatementOfChangesInEquityLayout();
188189 StatementOfChangesInEquity ce = new StatementOfChangesInEquity(sceLayout, journalEntries);
190+ ce.setFontLoader(fontLoader);
189191 ce.writeTo(outputDir.resolve("社員資本等変動計算書.pdf"));
190192 System.out.println(" 社員資本等変動計算書.pdf を出力しました。");
191193 }
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/BalanceSheet.java (revision 60)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/BalanceSheet.java (revision 61)
@@ -4,6 +4,7 @@
44 import java.io.IOException;
55 import java.io.InputStream;
66 import java.io.InputStreamReader;
7+import java.io.OutputStream;
78 import java.io.Writer;
89 import java.nio.charset.StandardCharsets;
910 import java.nio.file.Files;
@@ -30,6 +31,7 @@
3031 import net.osdn.aoiro.model.Node;
3132 import net.osdn.aoiro.report.layout.BalanceSheetLayout;
3233 import net.osdn.pdf_brewer.BrewerData;
34+import net.osdn.pdf_brewer.FontLoader;
3335 import net.osdn.pdf_brewer.PdfBrewer;
3436
3537 /** 貸借対照表
@@ -55,6 +57,7 @@
5557
5658 private List<String> pageData = new ArrayList<String>();
5759 private List<String> printData;
60+ private FontLoader fontLoader;
5861
5962 private List<String> warnings = new ArrayList<String>();
6063
@@ -705,10 +708,19 @@
705708 }
706709 }
707710
711+ public void setFontLoader(FontLoader fontLoader) {
712+ this.fontLoader = fontLoader;
713+ }
714+
708715 public void writeTo(Path path) throws IOException {
709716 prepare();
710717
711- PdfBrewer brewer = new PdfBrewer(Main.fontLoader);
718+ PdfBrewer brewer;
719+ if(fontLoader != null) {
720+ brewer = new PdfBrewer(fontLoader);
721+ } else {
722+ brewer = new PdfBrewer();
723+ }
712724 brewer.setCreator(Util.getPdfCreator());
713725 BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
714726 brewer.setTitle("貸借対照表");
@@ -717,6 +729,23 @@
717729 brewer.close();
718730 }
719731
732+ public void writeTo(OutputStream out) throws IOException {
733+ prepare();
734+
735+ PdfBrewer brewer;
736+ if(fontLoader != null) {
737+ brewer = new PdfBrewer(fontLoader);
738+ } else {
739+ brewer = new PdfBrewer();
740+ }
741+ brewer.setCreator(Util.getPdfCreator());
742+ BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
743+ brewer.setTitle("貸借対照表");
744+ brewer.process(pb);
745+ brewer.save(out);
746+ brewer.close();
747+ }
748+
720749 /** 次期開始仕訳を作成します。
721750 *
722751 * @param path 次期開始仕訳を保存するファイル。nullを指定した場合、ファイル出力はおこないません。
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralJournal.java (revision 60)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralJournal.java (revision 61)
@@ -4,6 +4,7 @@
44 import java.io.IOException;
55 import java.io.InputStream;
66 import java.io.InputStreamReader;
7+import java.io.OutputStream;
78 import java.nio.charset.StandardCharsets;
89 import java.nio.file.Path;
910 import java.time.LocalDate;
@@ -17,6 +18,7 @@
1718 import net.osdn.aoiro.model.Debtor;
1819 import net.osdn.aoiro.model.JournalEntry;
1920 import net.osdn.pdf_brewer.BrewerData;
21+import net.osdn.pdf_brewer.FontLoader;
2022 import net.osdn.pdf_brewer.PdfBrewer;
2123
2224 /** 仕訳帳
@@ -33,6 +35,7 @@
3335
3436 private List<String> pageData = new ArrayList<String>();
3537 private List<String> printData;
38+ private FontLoader fontLoader;
3639
3740 public GeneralJournal(List<JournalEntry> journalEntries, boolean isSoloProprietorship) throws IOException {
3841 this.entries = journalEntries;
@@ -345,11 +348,20 @@
345348
346349 return rowsRequired;
347350 }
348-
351+
352+ public void setFontLoader(FontLoader fontLoader) {
353+ this.fontLoader = fontLoader;
354+ }
355+
349356 public void writeTo(Path path) throws IOException {
350357 prepare();
351358
352- PdfBrewer brewer = new PdfBrewer(Main.fontLoader);
359+ PdfBrewer brewer;
360+ if(fontLoader != null) {
361+ brewer = new PdfBrewer(fontLoader);
362+ } else {
363+ brewer = new PdfBrewer();
364+ }
353365 brewer.setCreator(Util.getPdfCreator());
354366 BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
355367 brewer.setTitle("仕訳帳");
@@ -357,4 +369,21 @@
357369 brewer.save(path);
358370 brewer.close();
359371 }
372+
373+ public void writeTo(OutputStream out) throws IOException {
374+ prepare();
375+
376+ PdfBrewer brewer;
377+ if(fontLoader != null) {
378+ brewer = new PdfBrewer(fontLoader);
379+ } else {
380+ brewer = new PdfBrewer();
381+ }
382+ brewer.setCreator(Util.getPdfCreator());
383+ BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
384+ brewer.setTitle("仕訳帳");
385+ brewer.process(pb);
386+ brewer.save(out);
387+ brewer.close();
388+ }
360389 }
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralLedger.java (revision 60)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/GeneralLedger.java (revision 61)
@@ -4,6 +4,7 @@
44 import java.io.IOException;
55 import java.io.InputStream;
66 import java.io.InputStreamReader;
7+import java.io.OutputStream;
78 import java.nio.charset.StandardCharsets;
89 import java.nio.file.Path;
910 import java.time.LocalDate;
@@ -22,6 +23,7 @@
2223 import net.osdn.aoiro.model.Debtor;
2324 import net.osdn.aoiro.model.JournalEntry;
2425 import net.osdn.pdf_brewer.BrewerData;
26+import net.osdn.pdf_brewer.FontLoader;
2527 import net.osdn.pdf_brewer.PdfBrewer;
2628
2729 /** 総勘定元帳
@@ -40,6 +42,7 @@
4042
4143 private List<String> pageData = new ArrayList<>();
4244 private List<String> printData;
45+ private FontLoader fontLoader;
4346
4447 public GeneralLedger(Set<AccountTitle> accountTitles, List<JournalEntry> journalEntries, boolean isSoloProprietorship, boolean showMonthlyTotal) throws IOException {
4548 this.accountTitles = new LinkedHashSet<>(accountTitles);
@@ -572,12 +575,20 @@
572575 }
573576 return counterpartAccounts;
574577 }
578+
579+ public void setFontLoader(FontLoader fontLoader) {
580+ this.fontLoader = fontLoader;
581+ }
575582
576-
577583 public void writeTo(Path path) throws IOException {
578584 prepare();
579585
580- PdfBrewer brewer = new PdfBrewer(Main.fontLoader);
586+ PdfBrewer brewer;
587+ if(fontLoader != null) {
588+ brewer = new PdfBrewer(fontLoader);
589+ } else {
590+ brewer = new PdfBrewer();
591+ }
581592 brewer.setCreator(Util.getPdfCreator());
582593 BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
583594 brewer.setTitle("総勘定元帳");
@@ -585,7 +596,24 @@
585596 brewer.save(path);
586597 brewer.close();
587598 }
588-
599+
600+ public void writeTo(OutputStream out) throws IOException {
601+ prepare();
602+
603+ PdfBrewer brewer;
604+ if(fontLoader != null) {
605+ brewer = new PdfBrewer(fontLoader);
606+ } else {
607+ brewer = new PdfBrewer();
608+ }
609+ brewer.setCreator(Util.getPdfCreator());
610+ BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
611+ brewer.setTitle("総勘定元帳");
612+ brewer.process(pb);
613+ brewer.save(out);
614+ brewer.close();
615+ }
616+
589617 /** 指定した勘定科目を含む仕訳データを取得します。
590618 *
591619 * @param accountTitle 勘定科目
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/ProfitAndLoss.java (revision 60)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/ProfitAndLoss.java (revision 61)
@@ -4,6 +4,7 @@
44 import java.io.IOException;
55 import java.io.InputStream;
66 import java.io.InputStreamReader;
7+import java.io.OutputStream;
78 import java.nio.charset.StandardCharsets;
89 import java.nio.file.Path;
910 import java.time.LocalDate;
@@ -30,6 +31,7 @@
3031 import net.osdn.aoiro.model.Node;
3132 import net.osdn.aoiro.report.layout.ProfitAndLossLayout;
3233 import net.osdn.pdf_brewer.BrewerData;
34+import net.osdn.pdf_brewer.FontLoader;
3335 import net.osdn.pdf_brewer.PdfBrewer;
3436
3537 /** 損益計算書(P/L)
@@ -52,6 +54,7 @@
5254 private List<Entry<String, Amount[]>> monthlyTotals;
5355 private List<String> pageData = new ArrayList<>();
5456 private List<String> printData;
57+ private FontLoader fontLoader;
5558
5659 public ProfitAndLoss(ProfitAndLossLayout plLayout, List<JournalEntry> journalEntries, boolean isSoloProprietorship) throws IOException {
5760 this.plLayout = plLayout;
@@ -516,10 +519,19 @@
516519 printData.add("\t\t\\line " + String.format("150 0.2 150 %.2f", y + ROW_HEIGHT + ROW_HEIGHT));
517520 }
518521
522+ public void setFontLoader(FontLoader fontLoader) {
523+ this.fontLoader = fontLoader;
524+ }
525+
519526 public void writeTo(Path path) throws IOException {
520527 prepare();
521528
522- PdfBrewer brewer = new PdfBrewer(Main.fontLoader);
529+ PdfBrewer brewer;
530+ if(fontLoader != null) {
531+ brewer = new PdfBrewer(fontLoader);
532+ } else {
533+ brewer = new PdfBrewer();
534+ }
523535 brewer.setCreator(Util.getPdfCreator());
524536 BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
525537 brewer.setTitle("損益計算書");
@@ -527,7 +539,24 @@
527539 brewer.save(path);
528540 brewer.close();
529541 }
530-
542+
543+ public void writeTo(OutputStream out) throws IOException {
544+ prepare();
545+
546+ PdfBrewer brewer;
547+ if(fontLoader != null) {
548+ brewer = new PdfBrewer(fontLoader);
549+ } else {
550+ brewer = new PdfBrewer();
551+ }
552+ brewer.setCreator(Util.getPdfCreator());
553+ BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
554+ brewer.setTitle("損益計算書");
555+ brewer.process(pb);
556+ brewer.save(out);
557+ brewer.close();
558+ }
559+
531560 private static String formatMoney(long amount) {
532561 if(MINUS_SIGN != null && amount < 0) {
533562 return MINUS_SIGN + String.format("%,d", -amount);
--- aoiro/trunk/src/main/java/net/osdn/aoiro/report/StatementOfChangesInEquity.java (revision 60)
+++ aoiro/trunk/src/main/java/net/osdn/aoiro/report/StatementOfChangesInEquity.java (revision 61)
@@ -4,6 +4,7 @@
44 import java.io.IOException;
55 import java.io.InputStream;
66 import java.io.InputStreamReader;
7+import java.io.OutputStream;
78 import java.nio.charset.StandardCharsets;
89 import java.nio.file.Path;
910 import java.time.LocalDate;
@@ -33,6 +34,7 @@
3334 import net.osdn.aoiro.model.Node;
3435 import net.osdn.aoiro.report.layout.StatementOfChangesInEquityLayout;
3536 import net.osdn.pdf_brewer.BrewerData;
37+import net.osdn.pdf_brewer.FontLoader;
3638 import net.osdn.pdf_brewer.PdfBrewer;
3739
3840 public class StatementOfChangesInEquity {
@@ -64,6 +66,7 @@
6466
6567 private List<String> pageData = new ArrayList<>();
6668 private List<String> printData;
69+ private FontLoader fontLoader;
6770
6871 public StatementOfChangesInEquity(StatementOfChangesInEquityLayout sceLayout, List<JournalEntry> journalEntries) throws IOException {
6972 this.sceLayout = sceLayout;
@@ -456,11 +459,20 @@
456459 y += ROW_HEIGHT;
457460 }
458461 }
459-
462+
463+ public void setFontLoader(FontLoader fontLoader) {
464+ this.fontLoader = fontLoader;
465+ }
466+
460467 public void writeTo(Path path) throws IOException {
461468 prepare();
462469
463- PdfBrewer brewer = new PdfBrewer(Main.fontLoader);
470+ PdfBrewer brewer;
471+ if(fontLoader != null) {
472+ brewer = new PdfBrewer(fontLoader);
473+ } else {
474+ brewer = new PdfBrewer();
475+ }
464476 brewer.setCreator(Util.getPdfCreator());
465477 BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
466478 brewer.setTitle("社員資本等変動計算書");
@@ -468,7 +480,24 @@
468480 brewer.save(path);
469481 brewer.close();
470482 }
471-
483+
484+ public void writeTo(OutputStream out) throws IOException {
485+ prepare();
486+
487+ PdfBrewer brewer;
488+ if(fontLoader != null) {
489+ brewer = new PdfBrewer(fontLoader);
490+ } else {
491+ brewer = new PdfBrewer();
492+ }
493+ brewer.setCreator(Util.getPdfCreator());
494+ BrewerData pb = new BrewerData(printData, brewer.getFontLoader());
495+ brewer.setTitle("社員資本等変動計算書");
496+ brewer.process(pb);
497+ brewer.save(out);
498+ brewer.close();
499+ }
500+
472501 private static String formatMoney(long amount) {
473502 if(MINUS_SIGN != null && amount < 0) {
474503 return MINUS_SIGN + String.format("%,d", -amount);
Afficher sur ancien navigateur de dépôt.