Compare commits
No commits in common. "ed8a8203e8bf70c5263623e7385f0a204c10c80b" and "b9815dcec14cac4a464318821060e9148d7f64da" have entirely different histories.
ed8a8203e8
...
b9815dcec1
@ -1504,6 +1504,23 @@ public class EstimateService {
|
|||||||
} while (!prevName.equals(itemName) && itemName.contains("&"));
|
} while (!prevName.equals(itemName) && itemName.contains("&"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 3. 폰트 미지원 특수문자 치환
|
||||||
|
// PDF는 PdfUtil에서 표준 폰트 fallback으로 ® 등을 렌더링하므로 치환 불필요
|
||||||
|
// Excel은 MS PGothic 고정이므로 ASCII로 치환
|
||||||
|
if (!isPdfDownload) {
|
||||||
|
itemName = itemName
|
||||||
|
.replace("\u00AE", "(R)") // ® → (R)
|
||||||
|
.replace("\u2122", "(TM)") // ™ → (TM)
|
||||||
|
.replace("\u00A9", "(C)") // © → (C)
|
||||||
|
.replace("\u2013", "-") // – (en dash) → -
|
||||||
|
.replace("\u2014", "-") // — (em dash) → -
|
||||||
|
.replace("\u2018", "'") // ' → '
|
||||||
|
.replace("\u2019", "'") // ' → '
|
||||||
|
.replace("\u201C", "\"") // " → "
|
||||||
|
.replace("\u201D", "\"") // " → "
|
||||||
|
.replace("\u2026", "..."); // … → ...
|
||||||
|
}
|
||||||
|
|
||||||
itemResponse.setItemName(itemName);
|
itemResponse.setItemName(itemName);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.warn("Excel itemName processing failed: {}", itemName);
|
log.warn("Excel itemName processing failed: {}", itemName);
|
||||||
|
|||||||
@ -93,7 +93,6 @@ public class InterfaceQsp {
|
|||||||
sb = new StringBuilder();
|
sb = new StringBuilder();
|
||||||
int status = con.getResponseCode();
|
int status = con.getResponseCode();
|
||||||
if (status == HttpURLConnection.HTTP_OK) {
|
if (status == HttpURLConnection.HTTP_OK) {
|
||||||
log.info("[DEBUG] QSP Content-Type: {}", con.getContentType());
|
|
||||||
br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"));
|
br = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"));
|
||||||
|
|
||||||
String line;
|
String line;
|
||||||
|
|||||||
@ -265,7 +265,7 @@ public class PdfUtil {
|
|||||||
* @return 설정된 FontProvider
|
* @return 설정된 FontProvider
|
||||||
*/
|
*/
|
||||||
private static DefaultFontProvider setFontProvider(String fontPath) throws IOException {
|
private static DefaultFontProvider setFontProvider(String fontPath) throws IOException {
|
||||||
DefaultFontProvider fontProvider = new DefaultFontProvider(false, false, false);
|
DefaultFontProvider fontProvider = new DefaultFontProvider(false, true, false);
|
||||||
InputStream fontStream = PdfUtil.class.getClassLoader().getResourceAsStream(fontPath);
|
InputStream fontStream = PdfUtil.class.getClassLoader().getResourceAsStream(fontPath);
|
||||||
|
|
||||||
if (fontStream != null) {
|
if (fontStream != null) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user