wkhtmltopdf는 html 페이지를 pdf로 다운받을 수 있는 프로그램이다.

 

 

1. OS에 맞게 다운로드한다.

https://wkhtmltopdf.org/downloads.html

 

wkhtmltopdf

All downloads are currently hosted via Github releases, so you can browse for a specific download or use the links below. Stable The current stable series is 0.12.5, which was released on June 11, 2018 – see changes since 0.12.4. OS Flavor Downloads Commen

wkhtmltopdf.org

 

2. 다운로드 후 적당한 위치에 압축을 푼다.

 

3. 윈도우의 경우 cmd 창에서

 

cd wkhtmltopdf위치\bin

wkhtmltopdf "다운로드 받고자 하는 페이지" "pdf 다운받을 위치"

 

 

 

4. 다운로드 됨

 

*참고

wkhtmltopdf -h 

를 작성하면 여러 옵션들이 나온다.


WRITTEN BY
beautifulhill

,

php, html 코드로 되어있는 페이지를 pdf로 변환하고자 한다.

이미 html코드로 페이지가 되어있는 상태라 최대한 적게 수정하는 방향으로 알아봤다.

 

1. fpdf

http://www.fpdf.org/

 

FPDF

 

www.fpdf.org

<?php
require('fpdf.php');

$pdf = new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'Hello World!');
$pdf->Output();
?>

사이트에 가면 여러 예제가 나와있으나, 코드를 대폭 수정해야한다.

 

2. tcpdf

https://tcpdf.org/

-tcpdf의 경우 fpdf보다 기존의 코드를 살릴 수 있었다.

-예제도 더 자세하고 많이 나온다.

-float padding 이 안먹힌다.

-기존의 페이지와 다르게 나오는 부분이 많아 결국 전체 수정을 해야할 판..

 

 

 

3. html2pdf

https://github.com/spipu/html2pdf

 

-이런 라이브러리를 간절히 찾고있었다!

-한글이 안된다

 

 

 


4. html2canvas, jspdf

 

-html2canvas로 html객체를 이미지로 변환 jspdf로 pdf를 생성하는 방식

-원하는 곳에서 페이지를 나눌 수 있고

-기존의 페이지와 가장 유사하게 나온다.

-화질의 문제가 발생한다.

-마치 그림판으로 늘려놓은 느낌의 글자와 이미지 화질....

-화면 크기에 따라 다른 결과가 나옴

-pdf 변환이 다 되기 전에 스크롤로 아래페이지로 가버리면 윗 페이지들이 안나오거나 오류가 발생함

-좀 더 고민해서 사용하면 유용할 것 같다.

 

 

5. wkhtmltopdf

https://wkhtmltopdf.org/

-html2canvas, jspdf를 사용하는 것과 같은 결과가 나온다.

-해당 페이지를 캡처하여 pdf로 변환하는 것과 같은 효과

-화질이 깨지지 않음

-5개 중 가장 간단하고 빠름

-php의 경우 exec로 바로 실행된다.

- https://beautifulhill.tistory.com/3

 


WRITTEN BY
beautifulhill

,

스킬서버를 구축하여 카카오톡 챗봇을 사용하면 더 자유롭게 사용할 수 있다.

php로 아주 간단히 simpletext로 응답을 보내는 방법을 설명하겠다.

 

1. 블록 수정

 

2. 응답 예시

- 응답은 다음과 같은 json 형태로 올 것이다.

3. 코드

~~/kakaochat/index.php

<?
$json_data = file_get_contents("php://input"); 
$obj_json = json_decode($json_data);
$singer = $obj_json->action->detailParams->singer->value;
$num_album = $obj_json->action->detailParams->num_album->origin;


$text = '주문확인 : '.$singer.'의 '.$num_album.'을 주문하셨습니다.';
$jayParsedAry = [
	"version" => "2.0", 
	"template" => [
		"outputs" => [
			[
				"simpleText" => [
					"text" => $text
				]
			]
		]
	]
];

echo json_encode($jayParsedAry,JSON_UNESCAPED_UNICODE);
?>

 

 

4. 카카오톡 챗봇 > 스킬 > 스킬 명 및 스킬서버 URL 입력 

 

 

5. 예시

 


WRITTEN BY
beautifulhill

,

스킬서버 없이 간단한 카카오톡 챗봇을 만들 수 있다.

다른 것들은 매뉴얼에 잘 나와 있어 쉽게 따라했지만 되묻기, 컨텍스트의 경우 헷갈렸다.

그래서 그에 대해 정리하고자한다.

 

1. 되묻기

 

 

 

 

 

 

2. 컨텍스트

 

 

주는 블록

 

 

받는 블록

 

 

테스트

 


WRITTEN BY
beautifulhill

,

1. 엔티티

  • 봇이 이해할 수 있는 단어 사전, 데이터 사전
  • 동의어 설정 가능 => 오타가 있거나 띄어쓰기가 달라도 제대로 답변을 보여줄 수 있다.
  • 구조 : [엔티티명], [대표 엔트리], [동의어]
    • ex) [대학교], [서울대학교], [서울 대학교, 서울대, 관악대]
  • 종류 : 나의 엔티티, 시스템 엔티티
  • 나의 엔티티 : 사용자 정의 엔티티

2. 시나리오

  • 서비스 단위, 블록의 그룹
  • 시나리오 단위로 다수의 블록들을 원하는 서비스 별로 그룹핑하여 체계적으로 관리
  • 기본 시나리오 : 웰컴블록, 폴백블록(사용자의 의도를 파악 못 했을 때), 탈출블록
  • 커스텀시나리오 : 사용자 정의 시나리오
    • ex) 회사소개, 자주하는 질문이 각각의 시나리오
    • 회사소개 : 위치 소개, 회사 제품 소개가 각각의 블록 
  • 시나리오설정
    • 되묻기 질문 설정 가능
    • 봇 제네릭 메뉴 : 하단의 슬라이드 메뉴 형태로 존재하는 사용자 인터페이스
    • 스마트 채팅과 유사

3. 블록

  • 사용자 의도의 기본단위, 인덴트
  • 웰컴블록 : 사용자가 봇을 처음 사용할 때 받게되는 웰컴메시지를 설정하는 블록
  • 폴백 블록 : 사용자의 발화 의도가 어떠한 블록과도 매칭이 되지 않을 때 (=봇이 사용자의 발화 의도를 이해하지 못할 때)
  • 탈출 블록: 봇의 되묻기 상황에서 사용자가 대화를 초기화하거나 탈출하고 싶을때 쓰는 사용자 명령어를 정의하는 블록
  • 블록안에는 사용자 예상 발화, 그리고 봇이 수행할 액션과 응답할 내용이 설계

4. 컨텍스트

  • 컨텍스트는 서로 다른 블록 간 ‘연결고리’를 만들고 싶을 때 사용
  • 컨텍스트에 필요한 구성값 : 인풋, 아웃풋, 컨택스트 수명(lifespan), 유효기간(TTL)
  • Input context : 다른 블록에서 내보낸 컨텍스트 받을 때
  • Output context : 다른 블록으로 컨텍스트 내보낼때

5. 스킬

    • 스킬은 임의의 API를 연결하여 봇이 이를 이용할 수 있게 함

4. 컨텍스트

    • 플러그인에 스킬 적용할 수 있음
    • 스킬서버를 구축해야 사용 가능
    • 바코드(QR코드)를 보낼 수 있는 바코드플러그인
    • 날짜/시간 플러그인
    • 프로필, 회원가입, 이미지보안전송, 현위치 전송 플러그인 등

WRITTEN BY
beautifulhill

,

mysql에서 auto increment 속성을 초기화할 때

Alter table test.member auto_increment=1

 

이 때 auto_increment의 숫자는 현재 테이블에서 가장 높은 수 보다 커야한다.

 

 

-Before

-After


WRITTEN BY
beautifulhill

,

1. 오류

failed to Connect to MySQL at ftp서버 width user root  

Bad handshake

 

 

2. 원인

최신 workbench

버전이 낮은 구 mysql

 

 

3. 해결방안

낮은 버전의 workbench 설치한다.

해당링크에서 연결해야 할 mysql에 맞는 버전으로 설치한다.

 

https://dev.mysql.com/downloads/

 

MySQL :: MySQL Community Downloads

The world's most popular open source database

dev.mysql.com

 

 

3-1. mysql workbench 클릭

 

 

3-2. Select Opreating System 에서 해당하는 OS를 선택한 후 

Looking for previous GA versions를 클릭한다.

 

 

3-3. 버전을 선택한 후 다운로드 받는다.

 

 

 


WRITTEN BY
beautifulhill

,

1. 오류

mysql에서 회원 한명을 삭제 하기 위해 delete문을 실행했더니

 

delete from test.member where name = 'a';

 

다음과 같은 오류가 발생하였다.

 

Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column.  To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect.

 

2. 원인

safe모드 기능 때문에 delete나 update가 안되는 상태이다.

 

 

3. 해결방안

다음과 같이 safe모드를 0으로 설정하면 된다.

SET SQL_SAFE_UPDATES = 0;
delete from test.member;

WRITTEN BY
beautifulhill

,