Creating Pdf with data from editText android
I am trying to create a pdf
. Data is directly taken from edit text but the problem is that if I write any paragraph in the edit text the final out in pdf
is showing all data in 1 line instead of multi-line.
Although pdf
is getting created and I can see the output only in 1 single line.
Image links:
Stating activity:
File created:
File viewed:
public class Main2Activity extends AppCompatActivity {
Button btnCreate;
EditText editText,editText2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
btnCreate = (Button)findViewById(R.id.create);
editText =(EditText) findViewById(R.id.edittext);
editText2 =(EditText) findViewById(R.id.edittext2);
btnCreate.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View view) {
createPdf(editText.getText().toString(),editText2.getText().toString());
}
});
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void createPdf(String title,String description){
// create a new document
PdfDocument document = new PdfDocument();
// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(300, 600, 1).create();
// start a page
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawText(title, 20, 40, paint);
canvas.drawText(description, 20, 60, paint);
// canvas.drawText(description,1,20,20.0f,30.0f,paint);
//canvas.drawt
// finish the page
document.finishPage(page);
// draw text on the graphics object of the page
// write the document content
String directory_path = Environment.getExternalStorageDirectory().getPath() + "/mypdf/";
File file = new File(directory_path);
if (!file.exists()) {
file.mkdirs();
}
String targetPdf = directory_path+title+".pdf";
File filePath = new File(targetPdf);
try {
document.writeTo(new FileOutputStream(filePath));
Toast.makeText(this, "Done", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("main", "error "+e.toString());
Toast.makeText(this, "Something wrong: " + e.toString(),
Toast.LENGTH_LONG).show();
}
// close the document
document.close();
}
}
java android android-layout
|
show 1 more comment
I am trying to create a pdf
. Data is directly taken from edit text but the problem is that if I write any paragraph in the edit text the final out in pdf
is showing all data in 1 line instead of multi-line.
Although pdf
is getting created and I can see the output only in 1 single line.
Image links:
Stating activity:
File created:
File viewed:
public class Main2Activity extends AppCompatActivity {
Button btnCreate;
EditText editText,editText2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
btnCreate = (Button)findViewById(R.id.create);
editText =(EditText) findViewById(R.id.edittext);
editText2 =(EditText) findViewById(R.id.edittext2);
btnCreate.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View view) {
createPdf(editText.getText().toString(),editText2.getText().toString());
}
});
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void createPdf(String title,String description){
// create a new document
PdfDocument document = new PdfDocument();
// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(300, 600, 1).create();
// start a page
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawText(title, 20, 40, paint);
canvas.drawText(description, 20, 60, paint);
// canvas.drawText(description,1,20,20.0f,30.0f,paint);
//canvas.drawt
// finish the page
document.finishPage(page);
// draw text on the graphics object of the page
// write the document content
String directory_path = Environment.getExternalStorageDirectory().getPath() + "/mypdf/";
File file = new File(directory_path);
if (!file.exists()) {
file.mkdirs();
}
String targetPdf = directory_path+title+".pdf";
File filePath = new File(targetPdf);
try {
document.writeTo(new FileOutputStream(filePath));
Toast.makeText(this, "Done", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("main", "error "+e.toString());
Toast.makeText(this, "Something wrong: " + e.toString(),
Toast.LENGTH_LONG).show();
}
// close the document
document.close();
}
}
java android android-layout
i think you have to find the EOF character and change the String to be written into the file accordingly.(using escape sequence)
– ABr
Nov 23 '18 at 10:49
not helpfull amy other wau
– Syed Fuzail Abid
Nov 26 '18 at 6:25
createPdf(editText.getText().toString()+"n",editText2.getText().toString());
– ABr
Nov 26 '18 at 6:28
@Abr not working out
– Syed Fuzail Abid
Nov 28 '18 at 9:26
try the maxlines property inside xml, maybe
– ABr
Nov 28 '18 at 10:20
|
show 1 more comment
I am trying to create a pdf
. Data is directly taken from edit text but the problem is that if I write any paragraph in the edit text the final out in pdf
is showing all data in 1 line instead of multi-line.
Although pdf
is getting created and I can see the output only in 1 single line.
Image links:
Stating activity:
File created:
File viewed:
public class Main2Activity extends AppCompatActivity {
Button btnCreate;
EditText editText,editText2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
btnCreate = (Button)findViewById(R.id.create);
editText =(EditText) findViewById(R.id.edittext);
editText2 =(EditText) findViewById(R.id.edittext2);
btnCreate.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View view) {
createPdf(editText.getText().toString(),editText2.getText().toString());
}
});
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void createPdf(String title,String description){
// create a new document
PdfDocument document = new PdfDocument();
// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(300, 600, 1).create();
// start a page
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawText(title, 20, 40, paint);
canvas.drawText(description, 20, 60, paint);
// canvas.drawText(description,1,20,20.0f,30.0f,paint);
//canvas.drawt
// finish the page
document.finishPage(page);
// draw text on the graphics object of the page
// write the document content
String directory_path = Environment.getExternalStorageDirectory().getPath() + "/mypdf/";
File file = new File(directory_path);
if (!file.exists()) {
file.mkdirs();
}
String targetPdf = directory_path+title+".pdf";
File filePath = new File(targetPdf);
try {
document.writeTo(new FileOutputStream(filePath));
Toast.makeText(this, "Done", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("main", "error "+e.toString());
Toast.makeText(this, "Something wrong: " + e.toString(),
Toast.LENGTH_LONG).show();
}
// close the document
document.close();
}
}
java android android-layout
I am trying to create a pdf
. Data is directly taken from edit text but the problem is that if I write any paragraph in the edit text the final out in pdf
is showing all data in 1 line instead of multi-line.
Although pdf
is getting created and I can see the output only in 1 single line.
Image links:
Stating activity:
File created:
File viewed:
public class Main2Activity extends AppCompatActivity {
Button btnCreate;
EditText editText,editText2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
btnCreate = (Button)findViewById(R.id.create);
editText =(EditText) findViewById(R.id.edittext);
editText2 =(EditText) findViewById(R.id.edittext2);
btnCreate.setOnClickListener(new View.OnClickListener() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onClick(View view) {
createPdf(editText.getText().toString(),editText2.getText().toString());
}
});
}
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
private void createPdf(String title,String description){
// create a new document
PdfDocument document = new PdfDocument();
// crate a page description
PdfDocument.PageInfo pageInfo = new PdfDocument.PageInfo.Builder(300, 600, 1).create();
// start a page
PdfDocument.Page page = document.startPage(pageInfo);
Canvas canvas = page.getCanvas();
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawText(title, 20, 40, paint);
canvas.drawText(description, 20, 60, paint);
// canvas.drawText(description,1,20,20.0f,30.0f,paint);
//canvas.drawt
// finish the page
document.finishPage(page);
// draw text on the graphics object of the page
// write the document content
String directory_path = Environment.getExternalStorageDirectory().getPath() + "/mypdf/";
File file = new File(directory_path);
if (!file.exists()) {
file.mkdirs();
}
String targetPdf = directory_path+title+".pdf";
File filePath = new File(targetPdf);
try {
document.writeTo(new FileOutputStream(filePath));
Toast.makeText(this, "Done", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Log.e("main", "error "+e.toString());
Toast.makeText(this, "Something wrong: " + e.toString(),
Toast.LENGTH_LONG).show();
}
// close the document
document.close();
}
}
java android android-layout
java android android-layout
edited Nov 28 '18 at 8:22
Akshay Paliwal
2,17912436
2,17912436
asked Nov 23 '18 at 10:31
Syed Fuzail AbidSyed Fuzail Abid
112
112
i think you have to find the EOF character and change the String to be written into the file accordingly.(using escape sequence)
– ABr
Nov 23 '18 at 10:49
not helpfull amy other wau
– Syed Fuzail Abid
Nov 26 '18 at 6:25
createPdf(editText.getText().toString()+"n",editText2.getText().toString());
– ABr
Nov 26 '18 at 6:28
@Abr not working out
– Syed Fuzail Abid
Nov 28 '18 at 9:26
try the maxlines property inside xml, maybe
– ABr
Nov 28 '18 at 10:20
|
show 1 more comment
i think you have to find the EOF character and change the String to be written into the file accordingly.(using escape sequence)
– ABr
Nov 23 '18 at 10:49
not helpfull amy other wau
– Syed Fuzail Abid
Nov 26 '18 at 6:25
createPdf(editText.getText().toString()+"n",editText2.getText().toString());
– ABr
Nov 26 '18 at 6:28
@Abr not working out
– Syed Fuzail Abid
Nov 28 '18 at 9:26
try the maxlines property inside xml, maybe
– ABr
Nov 28 '18 at 10:20
i think you have to find the EOF character and change the String to be written into the file accordingly.(using escape sequence)
– ABr
Nov 23 '18 at 10:49
i think you have to find the EOF character and change the String to be written into the file accordingly.(using escape sequence)
– ABr
Nov 23 '18 at 10:49
not helpfull amy other wau
– Syed Fuzail Abid
Nov 26 '18 at 6:25
not helpfull amy other wau
– Syed Fuzail Abid
Nov 26 '18 at 6:25
createPdf(editText.getText().toString()+"n",editText2.getText().toString());
– ABr
Nov 26 '18 at 6:28
createPdf(editText.getText().toString()+"n",editText2.getText().toString());
– ABr
Nov 26 '18 at 6:28
@Abr not working out
– Syed Fuzail Abid
Nov 28 '18 at 9:26
@Abr not working out
– Syed Fuzail Abid
Nov 28 '18 at 9:26
try the maxlines property inside xml, maybe
– ABr
Nov 28 '18 at 10:20
try the maxlines property inside xml, maybe
– ABr
Nov 28 '18 at 10:20
|
show 1 more comment
2 Answers
2
active
oldest
votes
I think that's because multiline
is property of EditText
, not String
, so if you read it from ET it will always be in single line. You can try to set max line length, and then read characters to limit, and then add it to new String
, for example ArrayList<String>
(you don't know how long text will be). If line limit doesn't end with ,
or .
or space
, then you read it further till ,
or .
or space
occurs. After all that you add whole ArrayList to your pdf, ending with n
each row.
add a comment |
Try splitting the string you get from the editText with some predefined Length and then using it in canvas.drawText()
while(description.length()>15){
if(description.length()>15){
String first = description.substring(0,15);
canvas.drawText(description, 20, 60, paint);
}
else{
String second =description.substring(0,description.length());
canvas.drawText(description, 20, 60, paint);
}
}
I have not tried this one. This might work
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53444986%2fcreating-pdf-with-data-from-edittext-android%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
I think that's because multiline
is property of EditText
, not String
, so if you read it from ET it will always be in single line. You can try to set max line length, and then read characters to limit, and then add it to new String
, for example ArrayList<String>
(you don't know how long text will be). If line limit doesn't end with ,
or .
or space
, then you read it further till ,
or .
or space
occurs. After all that you add whole ArrayList to your pdf, ending with n
each row.
add a comment |
I think that's because multiline
is property of EditText
, not String
, so if you read it from ET it will always be in single line. You can try to set max line length, and then read characters to limit, and then add it to new String
, for example ArrayList<String>
(you don't know how long text will be). If line limit doesn't end with ,
or .
or space
, then you read it further till ,
or .
or space
occurs. After all that you add whole ArrayList to your pdf, ending with n
each row.
add a comment |
I think that's because multiline
is property of EditText
, not String
, so if you read it from ET it will always be in single line. You can try to set max line length, and then read characters to limit, and then add it to new String
, for example ArrayList<String>
(you don't know how long text will be). If line limit doesn't end with ,
or .
or space
, then you read it further till ,
or .
or space
occurs. After all that you add whole ArrayList to your pdf, ending with n
each row.
I think that's because multiline
is property of EditText
, not String
, so if you read it from ET it will always be in single line. You can try to set max line length, and then read characters to limit, and then add it to new String
, for example ArrayList<String>
(you don't know how long text will be). If line limit doesn't end with ,
or .
or space
, then you read it further till ,
or .
or space
occurs. After all that you add whole ArrayList to your pdf, ending with n
each row.
answered Nov 28 '18 at 6:48
SkypeDoggSkypeDogg
8711
8711
add a comment |
add a comment |
Try splitting the string you get from the editText with some predefined Length and then using it in canvas.drawText()
while(description.length()>15){
if(description.length()>15){
String first = description.substring(0,15);
canvas.drawText(description, 20, 60, paint);
}
else{
String second =description.substring(0,description.length());
canvas.drawText(description, 20, 60, paint);
}
}
I have not tried this one. This might work
add a comment |
Try splitting the string you get from the editText with some predefined Length and then using it in canvas.drawText()
while(description.length()>15){
if(description.length()>15){
String first = description.substring(0,15);
canvas.drawText(description, 20, 60, paint);
}
else{
String second =description.substring(0,description.length());
canvas.drawText(description, 20, 60, paint);
}
}
I have not tried this one. This might work
add a comment |
Try splitting the string you get from the editText with some predefined Length and then using it in canvas.drawText()
while(description.length()>15){
if(description.length()>15){
String first = description.substring(0,15);
canvas.drawText(description, 20, 60, paint);
}
else{
String second =description.substring(0,description.length());
canvas.drawText(description, 20, 60, paint);
}
}
I have not tried this one. This might work
Try splitting the string you get from the editText with some predefined Length and then using it in canvas.drawText()
while(description.length()>15){
if(description.length()>15){
String first = description.substring(0,15);
canvas.drawText(description, 20, 60, paint);
}
else{
String second =description.substring(0,description.length());
canvas.drawText(description, 20, 60, paint);
}
}
I have not tried this one. This might work
answered Nov 28 '18 at 10:43
ABrABr
27027
27027
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53444986%2fcreating-pdf-with-data-from-edittext-android%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
i think you have to find the EOF character and change the String to be written into the file accordingly.(using escape sequence)
– ABr
Nov 23 '18 at 10:49
not helpfull amy other wau
– Syed Fuzail Abid
Nov 26 '18 at 6:25
createPdf(editText.getText().toString()+"n",editText2.getText().toString());
– ABr
Nov 26 '18 at 6:28
@Abr not working out
– Syed Fuzail Abid
Nov 28 '18 at 9:26
try the maxlines property inside xml, maybe
– ABr
Nov 28 '18 at 10:20