배송 스티커로 2020년: 집에서
진민
@_crmzchan 회사_
즐거운 메일!📮😍정말 감사합니다.
10:2020년 7월 24일 오전 24시
0
이.
이번 행사는 Shy와 Kevin이 맡고 Shy는 아메리카 각지에서 스티커를 나눠주며 저는 유럽과 아시아의 모든 배송을 처리합니다.300세트의 스티커를 운송하는 것은 나에게 매우 좋은 핑계를 주었다. (아마도) 과도하게 해결 방안을 설계해서 그것을 실현했다. 다음은 그것이 어떻게 발생했는지...
데이터 정리
첫 번째 단계는 주소 데이터를 정리하는 것이다.이것은 이미 SmartyStreet's API를 통해 국가와 지역에 따라 정렬되었고 데이터는 다음과 같다.
id,full_name,address,country,region
51,The Queen,"Buckingham Palace, London, SW1A 1AA, UK",UK,EU
먼저 주의해야 할 것은 주소(일반)는 쉼표로 구분된다.어떤 사람들은 마침표를 쓴다.그러나 대부분의 사람들은 주소의 줄마다 쉼표를 사용한다.메일 통합을 통해 이 점을 실현할 계획이기 때문에, 첫 번째는 줄바꿈으로 이 쉼표를 바꾸는 것입니다(저는 Python을 사용합니다).import csv
with open('data.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
with open('output.csv', 'w', newline='') as savefile:
writer = csv.DictWriter(savefile, fieldnames=reader.fieldnames)
writer.writeheader()
for row in reader:
row['address'] = row['address'].replace(',', '\n')
writer.writerow(row)
이것은 예상 효과를 실현하고 주소 필드의 ","문자를 "\n"으로 대체합니다.봉투를 준비하다
다음 단계는 봉투에 직접 인쇄할 템플릿을 설계하는 것이다.Linux와 OSS가 매우 강력하기 때문에, 우리는 이곳에서 LibreOffice를 사용합니다.케빈은 아름다운 디자인을 생각해냈다.
형식 -> 페이지 스타일로 문서 크기를 선택하고 C6(Kevin 디자인 크기)를 선택하면 메일 병합을 위한 데이터에 자리 표시자를 삽입할 수 있습니다.
너는 이것들이 텍스트 상자라고 생각할 수도 있지만, 그것들은 그렇지 않다.Libre Office는 병합 데이터를 텍스트 상자에 보낼 수 없기 때문에 이 텍스트 상자에는 Libre Office 개념frames이 사용됩니다.삽입 -> 프레임 -> 프레임 상호작용을 통해 이러한 내용을 배치한 다음 텍스트 상자처럼 프레임을 끌어낼 수 있습니다.기본적으로 테두리가 있지만 -> 속성을 마우스 오른쪽 버튼으로 클릭하여 사용자 정의할 수 있습니다.
완료되면 프레임 내의 텍스트(예: 글꼴, 색상, 크기 등)를 정상적으로 수정할 수 있습니다.
Linux 릴리스에 기본적으로 설치되어 있는 Libre Office를 사용한다면 데이터베이스 패키지 Base를 설치하지 않았을 수도 있습니다.apt를 사용하려면 모든 부족한 구성 요소를 가져오려면
sudo apt install libreoffice
을 입력해야 합니다.Base만 설치할 수 있지만 설치에 필요한 종속성도 있습니다.데이터베이스 엔진의 기본 요구 사항을 놓칠 수도 있습니다. (나중에 데이터베이스와 상호작용을 시도할 때'일반 입력/출력 오류'가 발생할 수 있습니다.)이것도 apt를 통해 설치할 수 있습니다:
sudo apt install libreoffice-sdbc-hsqldb
.우리의 CSV를 Base로 가져오는 것은 좀 이상하다.
LibreOffice Writer 템플릿으로 돌아가서 보기 -> 데이터 원본을 선택하면 방금 만든 데이터베이스를 볼 수 있습니다.
열 이름을 드래그한 다음 열이 나타날 프레임에 놓습니다.
아이고.얼마 안 남았어요.
봉투를 인쇄하다
LibreOffice의 표준 인쇄 대화 상자를 사용하여 형식 메시지를 인쇄할 것인지 묻는 경우 Yes 를 선택합니다.나는 확실히 Libre Office에서 프린터로 직접 인쇄하려고 했지만, 그 과정에서 내가 아무리 작게 해도 붕괴되었다.
단, LibreOffice에 단일 파일에 데이터를 병합하도록 요청할 수 있습니다.PDF를 선택했습니다.
데이터베이스가 얼마나 큰지에 따라 Libre Office는 한동안 고려할 것입니다.대상 폴더에서 아주 예쁜 봉투를 찾을 수 있습니다.
(오류 발견: 이 CSV에서 줄 바꿈 스크립트를 실행하지 않았습니다.)
그런 다음 모든 PDF를 인쇄하기 위해 작은 Bash 스크립트를 작성했습니다.
for ((i=1;i<=278;i++));
do
lp "$i.pdf"
done
그리고 너는 앉아서 기다리기만 하면 돼!HP 잉크젯 프린터에서 278개의 봉투를 모두 인쇄하는 데 약 4시간이 소요됩니다.그리고 나서 당신은 데이터베이스를 사용하여 당신이 보내고자 하는 각 지역의 수량을 조회할 수 있습니다. 이것은 우표를 구매할 때 매우 유용합니다. (우리는 원래 소인기를 사용하려고 했지만 고장이 났습니다.)그리고 이 봉투들을 가득 채우고 봉투 정면에 비싼 특수 라벨을 붙일 때가 왔다!
나는 네가 너의 스티커를 좋아하길 바란다. 나도 이 안내서가 다른 Libre Office for mailmerge를 사용하는 사람들에게 도움이 되기를 바란다.
쉬다
주디
@ 조디네빌
스티커 고마워요.👨🚀🤜
14:2020년 7월 29일 오후 18시
0
육.
부언: 반갑습니다.나 재밌게 놀았어!
Reference
이 문제에 관하여(배송 스티커로 2020년: 집에서), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/yougotthisconf/shipping-stickers-for-you-got-this-2020-from-home-6m8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)