Convert Csv into png image.
![](https://private-user-images.githubusercontent.com/44002126/291978991-37fdff7c-6947-49a3-9a5d-9b521273c9f0.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NTQ0NDksIm5iZiI6MTcyMTQ1NDE0OSwicGF0aCI6Ii80NDAwMjEyNi8yOTE5Nzg5OTEtMzdmZGZmN2MtNjk0Ny00OWEzLTlhNWQtOWI1MjEyNzNjOWYwLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzIwVDA1NDIyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzMmZiZGI0MDE5ZDljYzU4MDM0ZmU4YTA3YWM0YWQ0ZWQ1YTJkYWQyMWJmMDBmY2VkOWEyZmRmZjA5MjRkNDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.xnnM8w-fUpko_zodh-tCCa0CfNiHZs3FYNlJ67Zp2So)
![](https://private-user-images.githubusercontent.com/44002126/291978395-65a9f3f6-e76f-44f1-b18b-b116f7b310af.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjE0NTQ0NDksIm5iZiI6MTcyMTQ1NDE0OSwicGF0aCI6Ii80NDAwMjEyNi8yOTE5NzgzOTUtNjVhOWYzZjYtZTc2Zi00NGYxLWIxOGItYjExNmY3YjMxMGFmLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MjAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzIwVDA1NDIyOVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNkYTE4MjdkNWIyOGY5MzlmZGNhNzk1ZDQxZTI0NDdiYjEzNWEwNWRmZTAwZmY3NWVhZGVjZTU5ZDQ5ODBiNzkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.jIm6G_vTs6X2Oy9UaYU3a_cCdvBPMhU3mRQvEHpY22U)
Convert Csv into png image.
You cloud convert csv into image / pdf in 3 ways.
- Via raw
String
.
let rawCsv = """
a,b,c
1,2,3
4,5,6
7,8,9
10,11,12
"""
let csv = Csv.loadFromString(rawCsv)
let image = try await csv.generate(exportType: .png)
Output:
| a | b | c |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
| 10 | 11 | 12 |
- Via Local file.
let rawCsv = """
a,b,c
1,2,3
4,5,6
7,8,9
10,11,12
"""
let url = URL(
fileURLWithPath: "/Users/fumiyatanaka/Downloads/sample.csv"
)
rawCsv.data(using: .utf8)?.write(to: url)
// ----- ↑Just prepared for explanation. -----
let csv = Csv.loadFromDisk(url)
let data = try await csv.generate(fontSize: 12, exportType: .png)
Output:
| a | b | c |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
| 10 | 11 | 12 |
- Via network resource
let rawCsv = """
a,b,c
1,2,3
4,5,6
7,8,9
10,11,12
"""
let url = URL(
string: "https://raw.githubusercontent.com/fummicc1/csv2img/main/Fixtures/sample_1.csv"
)
// ----- ↑Just prepared for explanation. -----
let csv = Csv.loadFromNetwork(url)
let data = try await csv.generate(fontSize: 12, exportType: .png)
Output:
| a | b | c |
| 1 | 2 | 3 |
| 4 | 5 | 6 |
| 7 | 8 | 9 |
| 10 | 11 | 12 |
A helper library to generate Csv
in Csv2Img library.
- Define custom type that conforms to
CsvComposition
.
import Foundation
import Csv2Img
public struct CsvCompositionExample: CsvComposition {
@CsvRows(column: "age")
public var ages: [String]
@CsvRows(column: "name")
public var names: [String]
public init() { }
}
- Build
Csv
let composition: CsvCompositionExample = .init()
composition.ages.append(contentsOf: ["98", "99", "100"])
composition.names.append(contentsOf: ["Yamada", "Tanaka", "Sato"])
let csv = try! composition.build()
or you can write different way like the below.
let yamada = Csv.Row(index: 0, values: ["98", "Yamada"])
let tanaka = Csv.Row(index: 1, values: ["99", "Tanaka"])
let sato = Csv.Row(index: 2, values: ["100", "Sato"])
let csv = try! CsvCompositionParser.parse(type: CsvCompositionExample.self, rows: [yamada, tanaka, sato,])
Result |
---|
![]() |
A command line tool which generates png-image from csv. (Using Csv2Img
library)
Coomand line interface using Csv2Img
library.
If you have a csv file on your computer, you cloud use this flag with --local
, -l
.
./Csv2ImgCmd --local ~/Downloads/sample.csv ./output.png
If you would like to convert csv file on the internet, you cloud use this flag with --network
, -n
.
./Csv2ImgCmd --network \
https://raw.githubusercontent.com/fummicc1/csv2img/main/Sources/Csv2ImgCmd/Resources/sample_1.csv \
output.png
Pull requests, bug reports and feature requests are welcome 🚀